Report generated on 15-Sep-2020 at 20:06:29 by pytest-html v2.1.1
| Packages | {"pluggy": "0.13.1", "py": "1.9.0", "pytest": "6.0.2"} |
| Platform | Linux-4.19.76-linuxkit-x86_64-with-glibc2.2.5 |
| Plugins | {"excel": "1.4.1", "forked": "1.3.0", "html": "2.1.1", "json": "0.4.0", "metadata": "1.10.0", "sugar": "0.9.4", "xdist": "2.1.0"} |
| Python | 3.8.5 |
176 tests ran in 41.10 seconds.
(Un)check the boxes to filter the results.
175 passed, 16 skipped, 1 failed, 0 errors, 0 expected failures, 0 unexpected passes| Result | Device | Test | Description | Duration |
|---|---|---|---|---|
| No results found. Try to check the filters | ||||
| Failed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest link statuses are up | 0.05 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 self = <tests.interface.test_interface.InterfaceStatusTests object at 0x7fef8af67ca0> dut = {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-...TEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, ...}} tests_definitions = {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'description': 'Verify the interfaces of interest protoc...rify username is set correctly', 'expected_output': True, 'name': 'test_if_usernames_are_configured_on_', ...}]}, ...]} def test_if_intf_link_status_is_connected_on_(self, dut, tests_definitions): """ Verify the interfaces of interest link statuses are up Args: dut (dict): Encapsulates dut details including name, connection tests_definitions (dict): Test parameters """ test_case = inspect.currentframe().f_code.co_name test_parameters = tests_tools.get_parameters(tests_definitions, TEST_SUITE, test_case) expected_output = test_parameters["expected_output"] dut_name = dut['name'] interfaces_list = dut["output"]["interface_list"] show_cmd = test_parameters["show_cmd"] tests_tools.verify_show_cmd(show_cmd, dut) show_cmd_txt = dut["output"][show_cmd]['text'] print(f"\nOn router |{dut_name}|:") for interface in interfaces_list: interface_name = interface['interface_name'].replace(" ", "") int_ptr = dut["output"][show_cmd]['json']['interfaceStatuses'] actual_output = int_ptr[interface_name]['linkStatus'] logging.info(f'TEST if interface |{interface_name}| link ' f' status is up on |{dut_name}|') logging.info(f'GIVEN interface status is |{expected_output}|') print(f" - On interface |{interface_name}|: interface link line " f"protocol status is set to: |{actual_output}|, correct " f"state is |{expected_output}|") logging.info(f'WHEN interface status is |{actual_output}|') test_result = actual_output == expected_output logging.info(f'THEN test case result is |{test_result}|') logging.info(f'OUTPUT of |{show_cmd}| is :\n\n{show_cmd_txt}') > tests_tools.write_results(test_parameters, dut_name, TEST_SUITE, actual_output, test_result) tests/interface/test_interface.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests_tools.py:486: in write_results test_cases = [param['name'] for param in yaml_data['test_suites'][suite_index]['test_cases']] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .0 = <list_iterator object at 0x7fef8aeeb5e0> > test_cases = [param['name'] for param in yaml_data['test_suites'][suite_index]['test_cases']] E KeyError: 'name' tests_tools.py:486: KeyError -------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:361 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:133 TEST if interface |Ethernet1| link status is up on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:135 GIVEN interface status is |connected| INFO root:test_interface.py:139 WHEN interface status is |connected| INFO root:test_interface.py:142 THEN test case result is |True| INFO root:test_interface.py:143 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEOSEdge2 | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEosRR1]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEosRR1]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEosRR1]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEosRR1]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEosRR2]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEosRR2]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEosRR2]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEosRR2]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEOSEdge1]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEOSEdge1]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEOSEdge1]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEOSEdge1]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEOSEdge2]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEOSEdge2]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEOSEdge2]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEOSEdge2]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw2] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Passed | kg-topology-CloudEosRR1 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEosRR1] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEosRR1] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show users detail| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEosRR1| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 110736 kgrozis command-api E 0:00:11 local | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA exec authorization are method-lists set correct | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA system accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA dot1x authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA priviledge accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEosRR1] | Verify management api https server is running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEosRR1| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 108180 Last hit: 0 seconds ago Bytes in: 16452424 Bytes out: 265139039 Requests: 102030 Commands: 204060 Duration: 10474.209 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 102030 16452424 265139039 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEosRR1] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEosRR1| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 108185 Last hit: 0 seconds ago Bytes in: 16453225 Bytes out: 265142715 Requests: 102035 Commands: 204070 Duration: 10474.291 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 102035 16453225 265142715 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEosRR1] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEosRR1| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 108186 Last hit: 0 seconds ago Bytes in: 16453390 Bytes out: 265143937 Requests: 102036 Commands: 204072 Duration: 10474.304 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 102036 16453390 265143937 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEosRR1] | Verify management api local httpserver is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEosRR1| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 108180 Last hit: 0 seconds ago Bytes in: 16452424 Bytes out: 265139039 Requests: 102030 Commands: 204060 Duration: 10474.209 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 102030 16452424 265139039 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEosRR1] | Verify management api http server is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEosRR1| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 108195 Last hit: 0 seconds ago Bytes in: 16454742 Bytes out: 265147417 Requests: 102044 Commands: 204088 Duration: 10474.422 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 102044 16454742 265147417 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEosRR1] | Verify a list of daemons are running on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show daemon| on kg-topology-CloudEosRR1 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEosRR1| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1720) Uptime: 33 days, 18:47:09 (Start time: Thu Aug 13 01:18:47 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR1 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEosRR1] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| 1 second CPU load average is |1.82%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEosRR1| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.82| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 20:05:52 up 33 days, 18:48, 0 users, load average: 1.82, 1.33, 1.23 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 34-06:11:36 Sfe 1720 2.4 1.8 ? Sl Aug 13 19:32:38 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 1321 1.6 0.1 ? Ss 20:05:48 00:00:00 sshd: root [priv] 27810 1.3 0.5 ? SNl 18:45:06 00:01:06 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 02:37:14 ConfigAgent 1296 0.2 0.9 ? S Aug 13 01:54:34 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 01:58:31 Sysdb 1735 0.1 1.7 ? S Aug 13 01:00:05 SuperServer 1759 0.1 1.0 ? S Aug 13 01:34:36 AgentMonitor 1992 0.1 1.6 ? S Aug 13 00:56:57 IpRib 1 0.0 0.0 ? Ss Aug 13 00:07:27 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:15 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:21 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:17 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 596 0.0 0.0 ? S 19:59:00 00:00:00 [kworker/0:1] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:03:30 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:05:35 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:20 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1063 0.0 0.0 ? S 20:05:00 00:00:00 [kworker/0:3] 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1322 0.0 0.0 ? S 20:05:48 00:00:00 sshd: root [net] 1369 0.0 0.0 ? S 20:05:49 00:00:00 sshd: root [pam] 1452 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 1468 0.0 0.0 ? S Aug 13 00:11:30 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:02:36 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:05:54 StageMgr 1575 0.0 1.4 ? S Aug 13 00:14:06 Fru 1576 0.0 1.8 ? S Aug 13 00:05:52 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:21:37 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:14:52 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:16:20 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:16:13 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:35:37 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:15:05 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:18:30 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:21:13 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:45:54 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:05:57 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:09:21 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:16:24 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:14:57 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:33:33 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:28:02 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:06:58 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:14:50 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:15:04 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:23:15 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:15:00 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:17:08 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:06:58 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:06:56 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:14:22 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:05:55 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:05:55 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:20:48 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:05:58 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:05:57 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:15:06 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:06:59 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:07:06 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:15:08 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:07:01 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:33:25 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:35 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:05:58 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:07 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:43:01 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:01:41 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:02:35 /usr/libexec/strongswan/charon --use-syslog 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:07:57 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:02:24 nginx: worker process 27791 0.0 0.0 ? S 18:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 31448 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:0] 32281 0.0 0.0 ? S 19:48:01 00:00:00 [kworker/0:2] | ||||
| Passed | kg-topology-CloudEosRR1 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEosRR1] | Verify 1 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| 1 minute CPU load average is |1.33%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR1| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |1.33| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 20:05:52 up 33 days, 18:48, 0 users, load average: 1.82, 1.33, 1.23 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 34-06:11:36 Sfe 1720 2.4 1.8 ? Sl Aug 13 19:32:38 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 1321 1.6 0.1 ? Ss 20:05:48 00:00:00 sshd: root [priv] 27810 1.3 0.5 ? SNl 18:45:06 00:01:06 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 02:37:14 ConfigAgent 1296 0.2 0.9 ? S Aug 13 01:54:34 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 01:58:31 Sysdb 1735 0.1 1.7 ? S Aug 13 01:00:05 SuperServer 1759 0.1 1.0 ? S Aug 13 01:34:36 AgentMonitor 1992 0.1 1.6 ? S Aug 13 00:56:57 IpRib 1 0.0 0.0 ? Ss Aug 13 00:07:27 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:15 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:21 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:17 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 596 0.0 0.0 ? S 19:59:00 00:00:00 [kworker/0:1] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:03:30 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:05:35 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:20 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1063 0.0 0.0 ? S 20:05:00 00:00:00 [kworker/0:3] 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1322 0.0 0.0 ? S 20:05:48 00:00:00 sshd: root [net] 1369 0.0 0.0 ? S 20:05:49 00:00:00 sshd: root [pam] 1457 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 1468 0.0 0.0 ? S Aug 13 00:11:30 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:02:36 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:05:54 StageMgr 1575 0.0 1.4 ? S Aug 13 00:14:06 Fru 1576 0.0 1.8 ? S Aug 13 00:05:52 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:21:37 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:14:52 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:16:20 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:16:13 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:35:37 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:15:05 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:18:30 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:21:13 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:45:54 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:05:57 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:09:21 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:16:24 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:14:57 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:33:33 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:28:02 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:06:58 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:14:50 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:15:04 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:23:15 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:15:00 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:17:08 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:06:58 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:06:56 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:14:22 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:05:55 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:05:55 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:20:48 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:05:58 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:05:57 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:15:06 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:06:59 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:07:06 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:15:08 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:07:01 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:33:25 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:35 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:05:58 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:07 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:43:01 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:01:41 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:02:35 /usr/libexec/strongswan/charon --use-syslog 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:07:57 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:02:24 nginx: worker process 27791 0.0 0.0 ? S 18:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 31448 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:0] 32281 0.0 0.0 ? S 19:48:01 00:00:00 [kworker/0:2] | ||||
| Passed | kg-topology-CloudEosRR1 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEosRR1] | Verify 5 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| 5 minute CPU load average is |1.23%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR1| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |1.23| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 20:05:52 up 33 days, 18:48, 0 users, load average: 1.82, 1.33, 1.23 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 34-06:11:36 Sfe 1720 2.4 1.8 ? Sl Aug 13 19:32:38 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 1321 1.6 0.1 ? Ss 20:05:48 00:00:00 sshd: root [priv] 27810 1.3 0.5 ? SNl 18:45:06 00:01:06 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 02:37:14 ConfigAgent 1296 0.2 0.9 ? S Aug 13 01:54:34 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 01:58:31 Sysdb 1735 0.1 1.7 ? S Aug 13 01:00:05 SuperServer 1759 0.1 1.0 ? S Aug 13 01:34:36 AgentMonitor 1992 0.1 1.6 ? S Aug 13 00:56:57 IpRib 1 0.0 0.0 ? Ss Aug 13 00:07:27 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:15 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:21 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:17 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 596 0.0 0.0 ? S 19:59:00 00:00:00 [kworker/0:1] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:03:30 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:05:35 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:20 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1063 0.0 0.0 ? S 20:05:00 00:00:00 [kworker/0:3] 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1322 0.0 0.0 ? S 20:05:48 00:00:00 sshd: root [net] 1369 0.0 0.0 ? S 20:05:49 00:00:00 sshd: root [pam] 1459 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 1468 0.0 0.0 ? S Aug 13 00:11:30 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:02:36 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:05:54 StageMgr 1575 0.0 1.4 ? S Aug 13 00:14:06 Fru 1576 0.0 1.8 ? S Aug 13 00:05:52 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:21:37 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:14:52 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:16:20 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:16:13 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:35:37 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:15:05 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:18:30 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:21:13 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:45:54 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:05:57 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:09:21 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:16:24 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:14:57 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:33:33 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:28:02 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:06:58 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:14:50 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:15:04 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:23:15 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:15:00 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:17:08 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:06:58 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:06:56 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:14:22 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:05:55 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:05:55 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:20:48 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:05:58 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:05:57 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:15:06 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:06:59 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:07:06 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:15:08 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:07:01 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:33:25 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:35 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:05:58 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:07 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:43:01 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:01:41 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:02:35 /usr/libexec/strongswan/charon --use-syslog 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:07:57 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:02:24 nginx: worker process 27791 0.0 0.0 ? S 18:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 31448 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:0] 32281 0.0 0.0 ? S 19:48:01 00:00:00 [kworker/0:2] | ||||
| Passed | kg-topology-CloudEosRR1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEosRR1] | Verify a list of daemons are enabled on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEosRR1| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:361 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show daemon| on kg-topology-CloudEosRR1 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1720) Uptime: 33 days, 18:47:09 (Start time: Thu Aug 13 01:18:47 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEosRR1] | Verify a list of extension are not erroring on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| awslogs.swix extension error is |False| On router |kg-topology-CloudEosRR1| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show extensions| on kg-topology-CloudEosRR1 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEosRR1| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEosRR1| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR1 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEosRR1] | Verify hostname is set on device is correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show hostname| on kg-topology-CloudEosRR1 INFO root:test_host.py:72 TEST is hostname kg-topology-CloudEosRR1 correct INFO root:test_host.py:73 GIVEN hostname kg-topology-CloudEosRR1 INFO root:test_host.py:74 WHEN hostname is kg-topology-CloudEosRR1 INFO root:test_host.py:81 THEN test case result is |False| INFO root:test_host.py:82 OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEosRR1 FQDN: kg-topology-CloudEosRR1 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest link statuses are up | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:361 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR1 INFO root:test_interface.py:133 TEST if interface |Ethernet1| link status is up on |kg-topology-CloudEosRR1| INFO root:test_interface.py:135 GIVEN interface status is |connected| INFO root:test_interface.py:139 WHEN interface status is |connected| INFO root:test_interface.py:142 THEN test case result is |True| INFO root:test_interface.py:143 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:489 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'actual_output': 'connected', 'test_result': True, 'dut': 'kg-topology-CloudEosRR1'} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEosRR1] | Verify filesystem is correct and expected files are present | 0.74 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEosRR1|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEosRR1|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEosRR1| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:250 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)), 'name': 'kg-topology-CloudEosRR1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR1', 'interface_name': 'Ethernet1', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR1', 'hostname': 'kg-topology-CloudEosRR1'}, 'text': 'Hostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 2918890.14, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '9B112703F293F47ADC3EE25318457B64', 'systemMacAddress': '02:46:bb:59:d5:ae', 'bootupTimestamp': 1597281461.0, 'memFree': 3002208, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 4 weeks, 5 days, 18 hours and 48 minutes\nTotal memory: 7761392 kB\nFree memory: 3002212 kB\n\n'}, 'show processes': {'json': {'processes': {'2051': {'totalActiveTime': 2959896, 'memPct': 3.4, 'cpuPct': 101.0, 'startTime': 1597281541.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1321': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 2.5, 'startTime': 1600200348.0, 'cmd': 'sshd: root [priv] ', 'state': 'Ss', 'ttyName': '?'}, '1720': {'totalActiveTime': 70358, 'memPct': 1.8, 'cpuPct': 2.4, 'startTime': 1597281526.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '27810': {'totalActiveTime': 66, 'memPct': 0.5, 'cpuPct': 1.3, 'startTime': 1600195506.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1571': {'totalActiveTime': 9434, 'memPct': 7.1, 'cpuPct': 0.3, 'startTime': 1597281504.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1296': {'totalActiveTime': 6874, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1529': {'totalActiveTime': 7111, 'memPct': 2.6, 'cpuPct': 0.2, 'startTime': 1597281501.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 3605, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281528.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1759': {'totalActiveTime': 5676, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281530.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1992': {'totalActiveTime': 3417, 'memPct': 1.6, 'cpuPct': 0.1, 'startTime': 1597281538.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 447, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 15, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 17, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '387': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '414': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '596': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199940.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '705': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '738': {'totalActiveTime': 210, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '740': {'totalActiveTime': 335, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 66, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '796': {'totalActiveTime': 7, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '811': {'totalActiveTime': 25, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '820': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '867': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '[kworker/u8:3]', 'state': 'S', 'ttyName': '?'}, '976': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '977': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1007': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1008': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1026': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1029': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1054': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281475.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1063': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200300.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '1169': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1170': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1204': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1267': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1269': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1295': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1322': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200348.0, 'cmd': 'sshd: root [net] ', 'state': 'S', 'ttyName': '?'}, '1369': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200349.0, 'cmd': 'sshd: root [pam] ', 'state': 'S', 'ttyName': '?'}, '1416': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200350.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '1468': {'totalActiveTime': 690, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1476': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1491': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1528': {'totalActiveTime': 156, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 354, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281504.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1575': {'totalActiveTime': 846, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1576': {'totalActiveTime': 352, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1697': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1698': {'totalActiveTime': 1297, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1704': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1706': {'totalActiveTime': 892, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1709': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 980, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1728': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 973, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 2137, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 905, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1742': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1744': {'totalActiveTime': 1110, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1748': {'totalActiveTime': 1273, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1749': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 2754, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 357, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1758': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1763': {'totalActiveTime': 561, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1764': {'totalActiveTime': 984, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1766': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1768': {'totalActiveTime': 897, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1777': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1778': {'totalActiveTime': 2013, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1790': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1794': {'totalActiveTime': 1682, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1816': {'totalActiveTime': 418, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1819': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 890, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1830': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1837': {'totalActiveTime': 904, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1850': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 1395, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1872': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1875': {'totalActiveTime': 900, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1882': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1884': {'totalActiveTime': 1028, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1887': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1888': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1889': {'totalActiveTime': 418, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 416, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 862, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1909': {'totalActiveTime': 355, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 355, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1929': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1935': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1939': {'totalActiveTime': 1248, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1947': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1948': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1951': {'totalActiveTime': 358, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1961': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1964': {'totalActiveTime': 357, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1967': {'totalActiveTime': 906, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1984': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1985': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1986': {'totalActiveTime': 419, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1991': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2009': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '2012': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2015': {'totalActiveTime': 426, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '2025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2027': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2028': {'totalActiveTime': 908, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '2031': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2032': {'totalActiveTime': 421, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2033': {'totalActiveTime': 2005, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2040': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2045': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2303': {'totalActiveTime': 35, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2369': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2630': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2631': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2632': {'totalActiveTime': 358, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2635': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2636': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2637': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2645': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2648': {'totalActiveTime': 67, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2649': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2691': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2718': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2720': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2721': {'totalActiveTime': 2581, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2723': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2750': {'totalActiveTime': 101, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3323': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3325': {'totalActiveTime': 155, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '18653': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18654': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18655': {'totalActiveTime': 477, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18701': {'totalActiveTime': 144, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '27791': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600195505.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '31448': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198560.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '32281': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199281.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 2918890.45, 'loadAvg': [1.82, 1.33, 1.23], 'users': 0, 'currentTime': 1600200351.341323}}, 'text': " 20:05:51 up 33 days, 18:48, 0 users, load average: 1.82, 1.33, 1.23\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2051 101 3.4 ? Sl Aug 13 34-06:11:36 Sfe\n 1321 2.5 0.1 ? Ss 20:05:48 00:00:00 sshd: root [priv] \n 1720 2.4 1.8 ? Sl Aug 13 19:32:38 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042\n27810 1.3 0.5 ? SNl 18:45:06 00:01:06 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1571 0.3 7.1 ? Sl Aug 13 02:37:14 ConfigAgent\n 1296 0.2 0.9 ? S Aug 13 01:54:34 ProcMgr-worker\n 1529 0.2 2.6 ? S Aug 13 01:58:31 Sysdb\n 1735 0.1 1.7 ? S Aug 13 01:00:05 SuperServer\n 1759 0.1 1.0 ? S Aug 13 01:34:36 AgentMonitor\n 1992 0.1 1.6 ? S Aug 13 00:56:57 IpRib\n 1 0.0 0.0 ? Ss Aug 13 00:07:27 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:15 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:21 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:17 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 596 0.0 0.0 ? S 19:59:00 00:00:00 [kworker/0:1]\n 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 738 0.0 0.0 ? Ss Aug 13 00:03:30 /usr/lib/systemd/systemd-logind\n 740 0.0 0.1 ? Ss Aug 13 00:05:35 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor\n 796 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 811 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60\n 820 0.0 0.0 ? Ss Aug 13 00:00:20 /usr/sbin/crond -n\n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3]\n 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1063 0.0 0.0 ? S 20:05:00 00:00:00 [kworker/0:3]\n 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1322 0.0 0.0 ? S 20:05:48 00:00:00 sshd: root [net] \n 1369 0.0 0.0 ? S 20:05:49 00:00:00 sshd: root [pam] \n 1444 0.0 0.0 ? Rs 20:05:50 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 1468 0.0 0.0 ? S Aug 13 00:11:30 /usr/bin/EosOomAdjust\n 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu]\n 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1528 0.0 0.0 ? S Aug 13 00:02:36 /usr/bin/SlabMonitor\n 1570 0.0 1.2 ? S Aug 13 00:05:54 StageMgr\n 1575 0.0 1.4 ? S Aug 13 00:14:06 Fru\n 1576 0.0 1.8 ? S Aug 13 00:05:52 Launcher\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1698 0.0 1.2 ? S Aug 13 00:21:37 Lldp\n 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1706 0.0 1.2 ? S Aug 13 00:14:52 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:16:20 PortSec\n 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 1.4 ? S Aug 13 00:16:13 Bfd\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.3 ? S Aug 13 00:35:37 Lag\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.5 ? S Aug 13 00:15:05 Ira\n 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1744 0.0 1.2 ? S Aug 13 00:18:30 LedPolicy\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1748 0.0 1.3 ? S Aug 13 00:21:13 EventMgr\n 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.2 ? S Aug 13 00:45:54 StpTxRx\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.1 ? S Aug 13 00:05:57 StandbyCpld\n 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1763 0.0 1.2 ? S Aug 13 00:09:21 Tunnel\n 1764 0.0 1.5 ? Sl Aug 13 00:16:24 Aaa\n 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1768 0.0 1.2 ? S Aug 13 00:14:57 StpTopology\n 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1778 0.0 1.4 ? S Aug 13 00:33:33 Acl\n 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1794 0.0 1.1 ? S Aug 13 00:28:02 Stp\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1816 0.0 1.1 ? S Aug 13 00:06:58 KernelNetworkInfo\n 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.2 ? S Aug 13 00:14:50 McastCommon6\n 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1837 0.0 1.2 ? S Aug 13 00:15:04 LacpTxAgent\n 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 1.5 ? S Aug 13 00:23:15 Arp\n 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1875 0.0 1.4 ? S Aug 13 00:15:00 KernelFib\n 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1884 0.0 1.2 ? S Aug 13 00:17:08 Qos\n 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1889 0.0 1.1 ? S Aug 13 00:06:58 Thermostat\n 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1899 0.0 1.2 ? S Aug 13 00:06:56 L2Rib\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.2 ? S Aug 13 00:14:22 TopoAgent\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1909 0.0 1.1 ? S Aug 13 00:05:55 PowerFuse\n 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.1 ? S Aug 13 00:05:55 PowerManager\n 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1939 0.0 1.4 ? S Aug 13 00:20:48 Ebra\n 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1951 0.0 1.1 ? S Aug 13 00:05:58 ReloadCauseAgent\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1964 0.0 1.1 ? S Aug 13 00:05:57 SharedSecretProfile\n 1967 0.0 1.5 ? S Aug 13 00:15:06 IgmpSnooping\n 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1986 0.0 1.3 ? S Aug 13 00:06:59 StaticRoute\n 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2015 0.0 1.9 ? S Aug 13 00:07:06 BgpCliHelper\n 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2028 0.0 1.3 ? S Aug 13 00:15:08 ConnectedRoute\n 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2032 0.0 1.3 ? S Aug 13 00:07:01 RouteInput\n 2033 0.0 2.3 ? Sl Aug 13 00:33:25 Bgp\n 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2303 0.0 0.0 ? Ssl Aug 13 00:00:35 /usr/sbin/rsyslogd -n\n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2632 0.0 1.1 ? S Aug 13 00:05:58 LicenseManager\n 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2648 0.0 0.0 ? S Aug 13 00:01:07 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console\n 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2721 0.0 1.2 ? S Aug 13 00:43:01 Ipsec\n 2723 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2750 0.0 0.1 ? Ssl Aug 13 00:01:41 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3325 0.0 0.1 ? Ssl Aug 13 00:02:35 /usr/libexec/strongswan/charon --use-syslog\n18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18655 0.0 1.3 ? Sl Aug 14 00:07:57 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18701 0.0 0.1 ? S Aug 14 00:02:24 nginx: worker process \n27791 0.0 0.0 ? S 18:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n31448 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:0]\n32281 0.0 0.0 ? S 19:48:01 00:00:00 [kworker/0:2]\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 110604, 'authorizationAllowed': 970, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 1, 'authenticationUnavailable': 113, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 110607\n Failed: 1\n Service unavailable: 113\n\nAuthorization\n Allowed: 970\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'110736': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600200342, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n110736 kgrozis command-api E 0:00:11 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 256, 'stratum': 4, 'maxEstimatedError': 12, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 12 ms\n polling server every 256 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.133, 'jitter': 0.072, 'lastReceived': 1600200122.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.385, 'peerIpAddr': '169.254.169.123', 'pollInterval': 256, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 234 256 377 0.133 0.385 0.072\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281527.475617, 'pid': 1720, 'enabled': True, 'uptime': 2918829.13, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1720)\nUptime: 33 days, 18:47:09 (Start time: Thu Aug 13 01:18:47 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 102026, 'bytesOut': 265137302, 'lastHitTime': 1600200357.9092014, 'bytesIn': 16451766}}, 'bytesOut': 265137302, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 108176, 'vrf': 'default', 'lastHitTime': 1600200357.909153, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 10474.14944777696, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 102026, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.12.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.2:443', 'Loopback10 : https://198.18.0.36:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 16451766, 'commandCount': 204052, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 108180\nLast hit: 0 seconds ago\nBytes in: 16452424\nBytes out: 265139039\nRequests: 102030\nCommands: 204060\nDuration: 10474.209 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 102030 16452424 265139039 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.12.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.2:443 \nLoopback10 : https://198.18.0.36:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:27:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:30 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:55 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:32 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:03 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:14 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:20 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 20:05:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:27:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:30 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:55 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:32 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:03 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:14 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:20 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 20:05:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:255 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)) INFO root:tests_tools.py:259 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEosRR1: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:262 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEosRR1: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:316 Open log file for logging test show commands INFO root:tests_tools.py:320 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEosRR1| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:250 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)), 'name': 'kg-topology-CloudEosRR1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR1', 'interface_name': 'Ethernet1', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR1', 'hostname': 'kg-topology-CloudEosRR1'}, 'text': 'Hostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 2918890.14, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '9B112703F293F47ADC3EE25318457B64', 'systemMacAddress': '02:46:bb:59:d5:ae', 'bootupTimestamp': 1597281461.0, 'memFree': 3002208, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 4 weeks, 5 days, 18 hours and 48 minutes\nTotal memory: 7761392 kB\nFree memory: 3002212 kB\n\n'}, 'show processes': {'json': {'processes': {'2051': {'totalActiveTime': 2959896, 'memPct': 3.4, 'cpuPct': 101.0, 'startTime': 1597281541.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1321': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 2.5, 'startTime': 1600200348.0, 'cmd': 'sshd: root [priv] ', 'state': 'Ss', 'ttyName': '?'}, '1720': {'totalActiveTime': 70358, 'memPct': 1.8, 'cpuPct': 2.4, 'startTime': 1597281526.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '27810': {'totalActiveTime': 66, 'memPct': 0.5, 'cpuPct': 1.3, 'startTime': 1600195506.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1571': {'totalActiveTime': 9434, 'memPct': 7.1, 'cpuPct': 0.3, 'startTime': 1597281504.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1296': {'totalActiveTime': 6874, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1529': {'totalActiveTime': 7111, 'memPct': 2.6, 'cpuPct': 0.2, 'startTime': 1597281501.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 3605, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281528.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1759': {'totalActiveTime': 5676, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281530.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1992': {'totalActiveTime': 3417, 'memPct': 1.6, 'cpuPct': 0.1, 'startTime': 1597281538.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 447, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 15, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 17, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '387': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '414': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '596': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199940.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '705': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '738': {'totalActiveTime': 210, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '740': {'totalActiveTime': 335, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 66, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '796': {'totalActiveTime': 7, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '811': {'totalActiveTime': 25, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '820': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '867': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '[kworker/u8:3]', 'state': 'S', 'ttyName': '?'}, '976': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '977': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1007': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1008': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1026': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1029': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1054': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281475.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1063': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200300.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '1169': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1170': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1204': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1267': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1269': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1295': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1322': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200348.0, 'cmd': 'sshd: root [net] ', 'state': 'S', 'ttyName': '?'}, '1369': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200349.0, 'cmd': 'sshd: root [pam] ', 'state': 'S', 'ttyName': '?'}, '1416': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200350.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '1468': {'totalActiveTime': 690, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1476': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1491': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1528': {'totalActiveTime': 156, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 354, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281504.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1575': {'totalActiveTime': 846, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1576': {'totalActiveTime': 352, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1697': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1698': {'totalActiveTime': 1297, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1704': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1706': {'totalActiveTime': 892, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1709': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 980, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1728': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 973, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 2137, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 905, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1742': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1744': {'totalActiveTime': 1110, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1748': {'totalActiveTime': 1273, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1749': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 2754, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 357, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1758': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1763': {'totalActiveTime': 561, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1764': {'totalActiveTime': 984, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1766': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1768': {'totalActiveTime': 897, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1777': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1778': {'totalActiveTime': 2013, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1790': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1794': {'totalActiveTime': 1682, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1816': {'totalActiveTime': 418, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1819': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 890, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1830': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1837': {'totalActiveTime': 904, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1850': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 1395, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1872': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1875': {'totalActiveTime': 900, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1882': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1884': {'totalActiveTime': 1028, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1887': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1888': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1889': {'totalActiveTime': 418, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 416, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 862, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1909': {'totalActiveTime': 355, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 355, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1929': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1935': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1939': {'totalActiveTime': 1248, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1947': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1948': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1951': {'totalActiveTime': 358, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1961': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1964': {'totalActiveTime': 357, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1967': {'totalActiveTime': 906, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1984': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1985': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1986': {'totalActiveTime': 419, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1991': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2009': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '2012': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2015': {'totalActiveTime': 426, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '2025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2027': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2028': {'totalActiveTime': 908, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '2031': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2032': {'totalActiveTime': 421, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2033': {'totalActiveTime': 2005, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2040': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2045': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2303': {'totalActiveTime': 35, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2369': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2630': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2631': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2632': {'totalActiveTime': 358, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2635': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2636': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2637': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2645': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2648': {'totalActiveTime': 67, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2649': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2691': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2718': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2720': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2721': {'totalActiveTime': 2581, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2723': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2750': {'totalActiveTime': 101, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3323': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3325': {'totalActiveTime': 155, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '18653': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18654': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18655': {'totalActiveTime': 477, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18701': {'totalActiveTime': 144, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '27791': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600195505.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '31448': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198560.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '32281': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199281.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 2918890.45, 'loadAvg': [1.82, 1.33, 1.23], 'users': 0, 'currentTime': 1600200351.341323}}, 'text': " 20:05:51 up 33 days, 18:48, 0 users, load average: 1.82, 1.33, 1.23\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2051 101 3.4 ? Sl Aug 13 34-06:11:36 Sfe\n 1321 2.5 0.1 ? Ss 20:05:48 00:00:00 sshd: root [priv] \n 1720 2.4 1.8 ? Sl Aug 13 19:32:38 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042\n27810 1.3 0.5 ? SNl 18:45:06 00:01:06 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1571 0.3 7.1 ? Sl Aug 13 02:37:14 ConfigAgent\n 1296 0.2 0.9 ? S Aug 13 01:54:34 ProcMgr-worker\n 1529 0.2 2.6 ? S Aug 13 01:58:31 Sysdb\n 1735 0.1 1.7 ? S Aug 13 01:00:05 SuperServer\n 1759 0.1 1.0 ? S Aug 13 01:34:36 AgentMonitor\n 1992 0.1 1.6 ? S Aug 13 00:56:57 IpRib\n 1 0.0 0.0 ? Ss Aug 13 00:07:27 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:15 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:21 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:17 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 596 0.0 0.0 ? S 19:59:00 00:00:00 [kworker/0:1]\n 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 738 0.0 0.0 ? Ss Aug 13 00:03:30 /usr/lib/systemd/systemd-logind\n 740 0.0 0.1 ? Ss Aug 13 00:05:35 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor\n 796 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 811 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60\n 820 0.0 0.0 ? Ss Aug 13 00:00:20 /usr/sbin/crond -n\n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3]\n 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1063 0.0 0.0 ? S 20:05:00 00:00:00 [kworker/0:3]\n 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1322 0.0 0.0 ? S 20:05:48 00:00:00 sshd: root [net] \n 1369 0.0 0.0 ? S 20:05:49 00:00:00 sshd: root [pam] \n 1444 0.0 0.0 ? Rs 20:05:50 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 1468 0.0 0.0 ? S Aug 13 00:11:30 /usr/bin/EosOomAdjust\n 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu]\n 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1528 0.0 0.0 ? S Aug 13 00:02:36 /usr/bin/SlabMonitor\n 1570 0.0 1.2 ? S Aug 13 00:05:54 StageMgr\n 1575 0.0 1.4 ? S Aug 13 00:14:06 Fru\n 1576 0.0 1.8 ? S Aug 13 00:05:52 Launcher\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1698 0.0 1.2 ? S Aug 13 00:21:37 Lldp\n 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1706 0.0 1.2 ? S Aug 13 00:14:52 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:16:20 PortSec\n 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 1.4 ? S Aug 13 00:16:13 Bfd\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.3 ? S Aug 13 00:35:37 Lag\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.5 ? S Aug 13 00:15:05 Ira\n 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1744 0.0 1.2 ? S Aug 13 00:18:30 LedPolicy\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1748 0.0 1.3 ? S Aug 13 00:21:13 EventMgr\n 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.2 ? S Aug 13 00:45:54 StpTxRx\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.1 ? S Aug 13 00:05:57 StandbyCpld\n 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1763 0.0 1.2 ? S Aug 13 00:09:21 Tunnel\n 1764 0.0 1.5 ? Sl Aug 13 00:16:24 Aaa\n 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1768 0.0 1.2 ? S Aug 13 00:14:57 StpTopology\n 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1778 0.0 1.4 ? S Aug 13 00:33:33 Acl\n 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1794 0.0 1.1 ? S Aug 13 00:28:02 Stp\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1816 0.0 1.1 ? S Aug 13 00:06:58 KernelNetworkInfo\n 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.2 ? S Aug 13 00:14:50 McastCommon6\n 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1837 0.0 1.2 ? S Aug 13 00:15:04 LacpTxAgent\n 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 1.5 ? S Aug 13 00:23:15 Arp\n 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1875 0.0 1.4 ? S Aug 13 00:15:00 KernelFib\n 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1884 0.0 1.2 ? S Aug 13 00:17:08 Qos\n 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1889 0.0 1.1 ? S Aug 13 00:06:58 Thermostat\n 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1899 0.0 1.2 ? S Aug 13 00:06:56 L2Rib\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.2 ? S Aug 13 00:14:22 TopoAgent\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1909 0.0 1.1 ? S Aug 13 00:05:55 PowerFuse\n 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.1 ? S Aug 13 00:05:55 PowerManager\n 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1939 0.0 1.4 ? S Aug 13 00:20:48 Ebra\n 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1951 0.0 1.1 ? S Aug 13 00:05:58 ReloadCauseAgent\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1964 0.0 1.1 ? S Aug 13 00:05:57 SharedSecretProfile\n 1967 0.0 1.5 ? S Aug 13 00:15:06 IgmpSnooping\n 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1986 0.0 1.3 ? S Aug 13 00:06:59 StaticRoute\n 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2015 0.0 1.9 ? S Aug 13 00:07:06 BgpCliHelper\n 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2028 0.0 1.3 ? S Aug 13 00:15:08 ConnectedRoute\n 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2032 0.0 1.3 ? S Aug 13 00:07:01 RouteInput\n 2033 0.0 2.3 ? Sl Aug 13 00:33:25 Bgp\n 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2303 0.0 0.0 ? Ssl Aug 13 00:00:35 /usr/sbin/rsyslogd -n\n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2632 0.0 1.1 ? S Aug 13 00:05:58 LicenseManager\n 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2648 0.0 0.0 ? S Aug 13 00:01:07 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console\n 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2721 0.0 1.2 ? S Aug 13 00:43:01 Ipsec\n 2723 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2750 0.0 0.1 ? Ssl Aug 13 00:01:41 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3325 0.0 0.1 ? Ssl Aug 13 00:02:35 /usr/libexec/strongswan/charon --use-syslog\n18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18655 0.0 1.3 ? Sl Aug 14 00:07:57 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18701 0.0 0.1 ? S Aug 14 00:02:24 nginx: worker process \n27791 0.0 0.0 ? S 18:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n31448 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:0]\n32281 0.0 0.0 ? S 19:48:01 00:00:00 [kworker/0:2]\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 110604, 'authorizationAllowed': 970, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 1, 'authenticationUnavailable': 113, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 110607\n Failed: 1\n Service unavailable: 113\n\nAuthorization\n Allowed: 970\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'110736': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600200342, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n110736 kgrozis command-api E 0:00:11 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 256, 'stratum': 4, 'maxEstimatedError': 12, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 12 ms\n polling server every 256 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.133, 'jitter': 0.072, 'lastReceived': 1600200122.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.385, 'peerIpAddr': '169.254.169.123', 'pollInterval': 256, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 234 256 377 0.133 0.385 0.072\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281527.475617, 'pid': 1720, 'enabled': True, 'uptime': 2918829.13, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1720)\nUptime: 33 days, 18:47:09 (Start time: Thu Aug 13 01:18:47 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 102026, 'bytesOut': 265137302, 'lastHitTime': 1600200357.9092014, 'bytesIn': 16451766}}, 'bytesOut': 265137302, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 108176, 'vrf': 'default', 'lastHitTime': 1600200357.909153, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 10474.14944777696, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 102026, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.12.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.2:443', 'Loopback10 : https://198.18.0.36:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 16451766, 'commandCount': 204052, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 108180\nLast hit: 0 seconds ago\nBytes in: 16452424\nBytes out: 265139039\nRequests: 102030\nCommands: 204060\nDuration: 10474.209 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 102030 16452424 265139039 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.12.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.2:443 \nLoopback10 : https://198.18.0.36:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:27:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:30 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:55 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:32 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:03 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:14 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:20 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 20:05:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:27:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:30 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:55 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:32 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:03 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:14 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:20 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 20:05:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:255 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)) INFO root:tests_tools.py:259 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEosRR1: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:262 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEosRR1: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:316 Open log file for logging test show commands INFO root:tests_tools.py:320 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEosRR1| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:250 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)), 'name': 'kg-topology-CloudEosRR1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR1', 'interface_name': 'Ethernet1', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR1', 'hostname': 'kg-topology-CloudEosRR1'}, 'text': 'Hostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 2918890.14, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '9B112703F293F47ADC3EE25318457B64', 'systemMacAddress': '02:46:bb:59:d5:ae', 'bootupTimestamp': 1597281461.0, 'memFree': 3002208, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 4 weeks, 5 days, 18 hours and 48 minutes\nTotal memory: 7761392 kB\nFree memory: 3002212 kB\n\n'}, 'show processes': {'json': {'processes': {'2051': {'totalActiveTime': 2959896, 'memPct': 3.4, 'cpuPct': 101.0, 'startTime': 1597281541.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1321': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 2.5, 'startTime': 1600200348.0, 'cmd': 'sshd: root [priv] ', 'state': 'Ss', 'ttyName': '?'}, '1720': {'totalActiveTime': 70358, 'memPct': 1.8, 'cpuPct': 2.4, 'startTime': 1597281526.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '27810': {'totalActiveTime': 66, 'memPct': 0.5, 'cpuPct': 1.3, 'startTime': 1600195506.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1571': {'totalActiveTime': 9434, 'memPct': 7.1, 'cpuPct': 0.3, 'startTime': 1597281504.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1296': {'totalActiveTime': 6874, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1529': {'totalActiveTime': 7111, 'memPct': 2.6, 'cpuPct': 0.2, 'startTime': 1597281501.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 3605, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281528.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1759': {'totalActiveTime': 5676, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281530.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1992': {'totalActiveTime': 3417, 'memPct': 1.6, 'cpuPct': 0.1, 'startTime': 1597281538.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 447, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 15, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 17, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '387': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '414': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '596': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199940.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '705': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '738': {'totalActiveTime': 210, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '740': {'totalActiveTime': 335, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 66, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '796': {'totalActiveTime': 7, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '811': {'totalActiveTime': 25, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '820': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '867': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '[kworker/u8:3]', 'state': 'S', 'ttyName': '?'}, '976': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '977': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1007': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1008': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1026': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1029': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1054': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281475.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1063': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200300.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '1169': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1170': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1204': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1267': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1269': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1295': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1322': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200348.0, 'cmd': 'sshd: root [net] ', 'state': 'S', 'ttyName': '?'}, '1369': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200349.0, 'cmd': 'sshd: root [pam] ', 'state': 'S', 'ttyName': '?'}, '1416': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200350.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '1468': {'totalActiveTime': 690, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1476': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1491': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1528': {'totalActiveTime': 156, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 354, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281504.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1575': {'totalActiveTime': 846, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1576': {'totalActiveTime': 352, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1697': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1698': {'totalActiveTime': 1297, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1704': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1706': {'totalActiveTime': 892, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1709': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 980, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1728': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 973, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 2137, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 905, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1742': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1744': {'totalActiveTime': 1110, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1748': {'totalActiveTime': 1273, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1749': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 2754, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 357, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1758': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1763': {'totalActiveTime': 561, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1764': {'totalActiveTime': 984, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1766': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1768': {'totalActiveTime': 897, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1777': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1778': {'totalActiveTime': 2013, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1790': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1794': {'totalActiveTime': 1682, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1816': {'totalActiveTime': 418, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1819': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 890, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1830': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1837': {'totalActiveTime': 904, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1850': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 1395, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1872': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1875': {'totalActiveTime': 900, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1882': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1884': {'totalActiveTime': 1028, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1887': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1888': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1889': {'totalActiveTime': 418, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 416, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 862, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1909': {'totalActiveTime': 355, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 355, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1929': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1935': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1939': {'totalActiveTime': 1248, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1947': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1948': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1951': {'totalActiveTime': 358, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1961': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1964': {'totalActiveTime': 357, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1967': {'totalActiveTime': 906, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1984': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1985': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1986': {'totalActiveTime': 419, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1991': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2009': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '2012': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2015': {'totalActiveTime': 426, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '2025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2027': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2028': {'totalActiveTime': 908, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '2031': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2032': {'totalActiveTime': 421, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2033': {'totalActiveTime': 2005, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2040': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2045': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2303': {'totalActiveTime': 35, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2369': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2630': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2631': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2632': {'totalActiveTime': 358, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2635': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2636': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2637': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2645': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2648': {'totalActiveTime': 67, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2649': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2691': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2718': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2720': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2721': {'totalActiveTime': 2581, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2723': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2750': {'totalActiveTime': 101, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3323': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3325': {'totalActiveTime': 155, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '18653': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18654': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18655': {'totalActiveTime': 477, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18701': {'totalActiveTime': 144, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '27791': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600195505.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '31448': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198560.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '32281': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199281.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 2918890.45, 'loadAvg': [1.82, 1.33, 1.23], 'users': 0, 'currentTime': 1600200351.341323}}, 'text': " 20:05:51 up 33 days, 18:48, 0 users, load average: 1.82, 1.33, 1.23\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2051 101 3.4 ? Sl Aug 13 34-06:11:36 Sfe\n 1321 2.5 0.1 ? Ss 20:05:48 00:00:00 sshd: root [priv] \n 1720 2.4 1.8 ? Sl Aug 13 19:32:38 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042\n27810 1.3 0.5 ? SNl 18:45:06 00:01:06 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1571 0.3 7.1 ? Sl Aug 13 02:37:14 ConfigAgent\n 1296 0.2 0.9 ? S Aug 13 01:54:34 ProcMgr-worker\n 1529 0.2 2.6 ? S Aug 13 01:58:31 Sysdb\n 1735 0.1 1.7 ? S Aug 13 01:00:05 SuperServer\n 1759 0.1 1.0 ? S Aug 13 01:34:36 AgentMonitor\n 1992 0.1 1.6 ? S Aug 13 00:56:57 IpRib\n 1 0.0 0.0 ? Ss Aug 13 00:07:27 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:15 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:21 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:17 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 596 0.0 0.0 ? S 19:59:00 00:00:00 [kworker/0:1]\n 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 738 0.0 0.0 ? Ss Aug 13 00:03:30 /usr/lib/systemd/systemd-logind\n 740 0.0 0.1 ? Ss Aug 13 00:05:35 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor\n 796 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 811 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60\n 820 0.0 0.0 ? Ss Aug 13 00:00:20 /usr/sbin/crond -n\n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3]\n 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1063 0.0 0.0 ? S 20:05:00 00:00:00 [kworker/0:3]\n 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1322 0.0 0.0 ? S 20:05:48 00:00:00 sshd: root [net] \n 1369 0.0 0.0 ? S 20:05:49 00:00:00 sshd: root [pam] \n 1444 0.0 0.0 ? Rs 20:05:50 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 1468 0.0 0.0 ? S Aug 13 00:11:30 /usr/bin/EosOomAdjust\n 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu]\n 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1528 0.0 0.0 ? S Aug 13 00:02:36 /usr/bin/SlabMonitor\n 1570 0.0 1.2 ? S Aug 13 00:05:54 StageMgr\n 1575 0.0 1.4 ? S Aug 13 00:14:06 Fru\n 1576 0.0 1.8 ? S Aug 13 00:05:52 Launcher\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1698 0.0 1.2 ? S Aug 13 00:21:37 Lldp\n 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1706 0.0 1.2 ? S Aug 13 00:14:52 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:16:20 PortSec\n 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 1.4 ? S Aug 13 00:16:13 Bfd\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.3 ? S Aug 13 00:35:37 Lag\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.5 ? S Aug 13 00:15:05 Ira\n 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1744 0.0 1.2 ? S Aug 13 00:18:30 LedPolicy\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1748 0.0 1.3 ? S Aug 13 00:21:13 EventMgr\n 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.2 ? S Aug 13 00:45:54 StpTxRx\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.1 ? S Aug 13 00:05:57 StandbyCpld\n 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1763 0.0 1.2 ? S Aug 13 00:09:21 Tunnel\n 1764 0.0 1.5 ? Sl Aug 13 00:16:24 Aaa\n 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1768 0.0 1.2 ? S Aug 13 00:14:57 StpTopology\n 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1778 0.0 1.4 ? S Aug 13 00:33:33 Acl\n 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1794 0.0 1.1 ? S Aug 13 00:28:02 Stp\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1816 0.0 1.1 ? S Aug 13 00:06:58 KernelNetworkInfo\n 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.2 ? S Aug 13 00:14:50 McastCommon6\n 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1837 0.0 1.2 ? S Aug 13 00:15:04 LacpTxAgent\n 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 1.5 ? S Aug 13 00:23:15 Arp\n 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1875 0.0 1.4 ? S Aug 13 00:15:00 KernelFib\n 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1884 0.0 1.2 ? S Aug 13 00:17:08 Qos\n 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1889 0.0 1.1 ? S Aug 13 00:06:58 Thermostat\n 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1899 0.0 1.2 ? S Aug 13 00:06:56 L2Rib\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.2 ? S Aug 13 00:14:22 TopoAgent\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1909 0.0 1.1 ? S Aug 13 00:05:55 PowerFuse\n 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.1 ? S Aug 13 00:05:55 PowerManager\n 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1939 0.0 1.4 ? S Aug 13 00:20:48 Ebra\n 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1951 0.0 1.1 ? S Aug 13 00:05:58 ReloadCauseAgent\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1964 0.0 1.1 ? S Aug 13 00:05:57 SharedSecretProfile\n 1967 0.0 1.5 ? S Aug 13 00:15:06 IgmpSnooping\n 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1986 0.0 1.3 ? S Aug 13 00:06:59 StaticRoute\n 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2015 0.0 1.9 ? S Aug 13 00:07:06 BgpCliHelper\n 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2028 0.0 1.3 ? S Aug 13 00:15:08 ConnectedRoute\n 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2032 0.0 1.3 ? S Aug 13 00:07:01 RouteInput\n 2033 0.0 2.3 ? Sl Aug 13 00:33:25 Bgp\n 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2303 0.0 0.0 ? Ssl Aug 13 00:00:35 /usr/sbin/rsyslogd -n\n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2632 0.0 1.1 ? S Aug 13 00:05:58 LicenseManager\n 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2648 0.0 0.0 ? S Aug 13 00:01:07 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console\n 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2721 0.0 1.2 ? S Aug 13 00:43:01 Ipsec\n 2723 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2750 0.0 0.1 ? Ssl Aug 13 00:01:41 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3325 0.0 0.1 ? Ssl Aug 13 00:02:35 /usr/libexec/strongswan/charon --use-syslog\n18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18655 0.0 1.3 ? Sl Aug 14 00:07:57 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18701 0.0 0.1 ? S Aug 14 00:02:24 nginx: worker process \n27791 0.0 0.0 ? S 18:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n31448 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:0]\n32281 0.0 0.0 ? S 19:48:01 00:00:00 [kworker/0:2]\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 110604, 'authorizationAllowed': 970, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 1, 'authenticationUnavailable': 113, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 110607\n Failed: 1\n Service unavailable: 113\n\nAuthorization\n Allowed: 970\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'110736': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600200342, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n110736 kgrozis command-api E 0:00:11 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 256, 'stratum': 4, 'maxEstimatedError': 12, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 12 ms\n polling server every 256 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.133, 'jitter': 0.072, 'lastReceived': 1600200122.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.385, 'peerIpAddr': '169.254.169.123', 'pollInterval': 256, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 234 256 377 0.133 0.385 0.072\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281527.475617, 'pid': 1720, 'enabled': True, 'uptime': 2918829.13, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1720)\nUptime: 33 days, 18:47:09 (Start time: Thu Aug 13 01:18:47 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 102026, 'bytesOut': 265137302, 'lastHitTime': 1600200357.9092014, 'bytesIn': 16451766}}, 'bytesOut': 265137302, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 108176, 'vrf': 'default', 'lastHitTime': 1600200357.909153, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 10474.14944777696, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 102026, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.12.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.2:443', 'Loopback10 : https://198.18.0.36:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 16451766, 'commandCount': 204052, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 108180\nLast hit: 0 seconds ago\nBytes in: 16452424\nBytes out: 265139039\nRequests: 102030\nCommands: 204060\nDuration: 10474.209 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 102030 16452424 265139039 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.12.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.2:443 \nLoopback10 : https://198.18.0.36:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:27:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:30 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:55 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:32 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:03 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:14 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:20 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 20:05:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:27:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:30 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:55 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:32 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:03 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:14 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:20 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 20:05:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:255 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)) INFO root:tests_tools.py:259 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR1: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:262 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR1: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:316 Open log file for logging test show commands INFO root:tests_tools.py:320 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest does not have input errors | 0.03 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:test_interface.py:263 TEST if interface |Ethernet1| counters has input errors on |kg-topology-CloudEosRR1| INFO root:test_interface.py:265 GIVEN interface input errors of |0| INFO root:test_interface.py:267 WHEN interface input errors is |{actual_output}| INFO root:test_interface.py:274 THEN test case result is |{test_result}| INFO root:test_interface.py:275 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:491 Create test case test_if_intf_counters_has_input_errors_on_ in results file INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1'} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no frameTooShorts errors | 0.03 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:test_interface.py:365 TEST if interface |Ethernet1| counters has frameTooShorts errors on |kg-topology-CloudEosRR1| INFO root:test_interface.py:367 GIVEN interface frameTooShorts errors of |0| INFO root:test_interface.py:369 WHEN interface frameTooShorts errors is |{actual_output}| INFO root:test_interface.py:376 THEN test case result is |{test_result}| INFO root:test_interface.py:377 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:491 Create test case test_if_intf_counters_has_frame_too_short_errors_on_ in results file INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1'} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest physical state is link up | 0.03 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEosRR1 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:361 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:404 Verify if kg-topology-CloudEosRR1 DUT is a VEOS instance INFO root:tests_tools.py:408 kg-topology-CloudEosRR1 is a VEOS instance so returning True INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:491 Create test case test_if_intf_phy_status_connected_on_ in results file INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'actual_output': None, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1'} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEosRR1] | Verify DNS is running by performing pings and verifying name resolution | 1.20 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| DNS resolution |Passed| for google.com On router |kg-topology-CloudEosRR1| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEosRR1| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR1| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (172.217.4.46) 72(100) bytes of data. 76 bytes from ord38s18-in-f14.1e100.net (172.217.4.46): icmp_seq=1 ttl=100 (truncated) 76 bytes from ord38s18-in-f14.1e100.net (172.217.4.46): icmp_seq=2 ttl=100 (truncated) 76 bytes from ord38s18-in-f14.1e100.net (172.217.4.46): icmp_seq=3 ttl=100 (truncated) 76 bytes from ord38s18-in-f14.1e100.net (172.217.4.46): icmp_seq=4 ttl=100 (truncated) 76 bytes from ord38s18-in-f14.1e100.net (172.217.4.46): icmp_seq=5 ttl=100 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 61ms rtt min/avg/max/mdev = 17.223/17.238/17.254/0.144 ms, pipe 2, ipg/ewma 15.441/17.246 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR1| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.65.67) 72(100) bytes of data. 80 bytes from 151.101.65.67 (151.101.65.67): icmp_seq=1 ttl=39 time=11.2 ms 80 bytes from 151.101.65.67 (151.101.65.67): icmp_seq=2 ttl=39 time=15.0 ms 80 bytes from 151.101.65.67 (151.101.65.67): icmp_seq=3 ttl=39 time=11.1 ms 80 bytes from 151.101.65.67 (151.101.65.67): icmp_seq=4 ttl=39 time=11.1 ms 80 bytes from 151.101.65.67 (151.101.65.67): icmp_seq=5 ttl=39 time=11.1 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 113ms rtt min/avg/max/mdev = 11.136/11.939/15.013/1.541 ms, pipe 2, ipg/ewma 28.378/11.532 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR1| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=40 time=23.4 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=40 time=23.4 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=40 time=23.6 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=40 time=23.5 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=40 time=23.5 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 189ms rtt min/avg/max/mdev = 23.458/23.529/23.655/0.154 ms, pipe 3, ipg/ewma 47.256/23.504 ms | ||||
| Passed | kg-topology-CloudEosRR1 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEosRR1] | Verify local log messages | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| message |critical| NOT found in local log On router |kg-topology-CloudEosRR1| message |warning| NOT found in local log On router |kg-topology-CloudEosRR1| message |ECC| NOT found in local log On router |kg-topology-CloudEosRR1| message |servers errors| NOT found in local log On router |kg-topology-CloudEosRR1| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show logging| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show logging| on kg-topology-CloudEosRR1 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 13:53:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:21:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:27:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:30 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:55 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:32 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:36:37 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:03 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:14 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:20 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 20:05:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 13:53:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:21:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:27:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:30 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:55 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:32 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:36:37 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:03 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:14 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:20 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 20:05:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 13:53:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:21:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:27:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:30 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:55 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:32 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:36:37 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:03 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:14 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:20 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 20:05:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 13:53:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:21:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:27:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:30 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:55 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:32 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:36:37 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:03 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:14 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:20 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 20:05:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 13:53:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 13:53:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:21:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:27:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:28:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:30 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:55 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:32 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:36:37 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:03 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:14 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:20 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 20:05:42 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEosRR1] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show ntp status| on kg-topology-CloudEosRR1 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEosRR1| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 12 ms polling server every 256 s | ||||
| Passed | kg-topology-CloudEosRR1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEosRR1] | Verify a list of extension are installed on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| awslogs.swix extension is |installed| On router |kg-topology-CloudEosRR1| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show extensions| on kg-topology-CloudEosRR1 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEosRR1| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEosRR1| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEosRR1] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEosRR1| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 20:05:52 up 33 days, 18:48, 0 users, load average: 1.82, 1.33, 1.23 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 34-06:11:36 Sfe 1720 2.4 1.8 ? Sl Aug 13 19:32:38 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 1321 1.6 0.1 ? Ss 20:05:48 00:00:00 sshd: root [priv] 27810 1.3 0.5 ? SNl 18:45:06 00:01:06 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 02:37:14 ConfigAgent 1296 0.2 0.9 ? S Aug 13 01:54:34 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 01:58:31 Sysdb 1735 0.1 1.7 ? S Aug 13 01:00:05 SuperServer 1759 0.1 1.0 ? S Aug 13 01:34:36 AgentMonitor 1992 0.1 1.6 ? S Aug 13 00:56:57 IpRib 1 0.0 0.0 ? Ss Aug 13 00:07:27 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:15 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:21 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:17 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 596 0.0 0.0 ? S 19:59:00 00:00:00 [kworker/0:1] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:03:30 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:05:35 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:20 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1063 0.0 0.0 ? S 20:05:00 00:00:00 [kworker/0:3] 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1322 0.0 0.0 ? S 20:05:48 00:00:00 sshd: root [net] 1369 0.0 0.0 ? S 20:05:49 00:00:00 sshd: root [pam] 1452 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 1468 0.0 0.0 ? S Aug 13 00:11:30 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:02:36 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:05:54 StageMgr 1575 0.0 1.4 ? S Aug 13 00:14:06 Fru 1576 0.0 1.8 ? S Aug 13 00:05:52 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:21:37 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:14:52 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:16:20 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:16:13 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:35:37 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:15:05 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:18:30 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:21:13 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:45:54 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:05:57 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:09:21 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:16:24 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:14:57 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:33:33 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:28:02 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:06:58 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:14:50 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:15:04 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:23:15 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:15:00 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:17:08 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:06:58 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:06:56 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:14:22 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:05:55 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:05:55 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:20:48 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:05:58 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:05:57 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:15:06 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:06:59 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:07:06 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:15:08 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:07:01 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:33:25 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:35 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:05:58 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:07 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:43:01 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:01:41 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:02:35 /usr/libexec/strongswan/charon --use-syslog 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:07:57 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:02:24 nginx: worker process 27791 0.0 0.0 ? S 18:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 31448 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:0] 32281 0.0 0.0 ? S 19:48:01 00:00:00 [kworker/0:2] | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no frameLongShorts errors | 0.06 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:test_interface.py:416 TEST if interface |Ethernet1| counters has frameTooLongs errors on |kg-topology-CloudEosRR1| INFO root:test_interface.py:418 GIVEN interface frameTooLongs errors of |0| INFO root:test_interface.py:420 WHEN interface frameTooLongs errors is |{actual_output}| INFO root:test_interface.py:427 THEN test case result is |{test_result}| INFO root:test_interface.py:428 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:491 Create test case test_if_intf_counters_has_frame_too_long_errors_on_ in results file INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1'} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEosRR1] | Verify tacacs messages are received correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show tacacs| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:382 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:388 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEosRR1| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEosRR1] | Verify ztp is disabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show zerotouch| on kg-topology-CloudEosRR1 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEosRR1| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest protocol statuses are up | 0.05 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:361 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR1 INFO root:test_interface.py:82 TEST if interface |Ethernet1| link prootocol statuses are up on |kg-topology-CloudEosRR1| INFO root:test_interface.py:84 GIVEN interface status is |up| INFO root:test_interface.py:88 WHEN interface status is |up| INFO root:test_interface.py:91 THEN test case result is |True| INFO root:test_interface.py:92 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:491 Create test case test_if_intf_protocol_status_is_connected_on_ in results file INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'actual_output': 'up', 'test_result': True, 'dut': 'kg-topology-CloudEosRR1'} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEosRR1] | Verify ntp peers are correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show ntp associations| on kg-topology-CloudEosRR1 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEosRR1| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 234 256 377 0.133 0.385 0.072 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEosRR2] | Verify management api https server is running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEosRR2| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 108137 Last hit: 0 seconds ago Bytes in: 16445767 Bytes out: 265071634 Requests: 101987 Commands: 203974 Duration: 8506.822 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 101987 16445767 265071634 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEosRR2] | Verify a list of extension are installed on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| awslogs.swix extension is |installed| On router |kg-topology-CloudEosRR2| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show extensions| on kg-topology-CloudEosRR2 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEosRR2| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEosRR2| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest does not have output errors | 0.04 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:test_interface.py:314 TEST if interface |Ethernet1| counters has output errors on |kg-topology-CloudEosRR1| INFO root:test_interface.py:316 GIVEN interface output errors of |0| INFO root:test_interface.py:318 WHEN interface output errors is |{actual_output}| INFO root:test_interface.py:325 THEN test case result is |{test_result}| INFO root:test_interface.py:326 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:491 Create test case test_if_intf_counters_has_output_errors_on_ in results file INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1'} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEosRR2] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEosRR2| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 108137 Last hit: 0 seconds ago Bytes in: 16445767 Bytes out: 265071634 Requests: 101987 Commands: 203974 Duration: 8506.822 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 101987 16445767 265071634 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEosRR1] | Verify username is set correctly | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| |ec2-user| username is |configured| On router |kg-topology-CloudEosRR1| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show running-config section username| on kg-topology-CloudEosRR1 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEosRR1| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEosRR1| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEosRR2] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEosRR2] | Verify a list of extension are not erroring on a DUT | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| awslogs.swix extension error is |False| On router |kg-topology-CloudEosRR2| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show extensions| on kg-topology-CloudEosRR2 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEosRR2| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEosRR2| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEosRR2] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEosRR2| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 108137 Last hit: 0 seconds ago Bytes in: 16445767 Bytes out: 265071634 Requests: 101987 Commands: 203974 Duration: 8506.822 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 101987 16445767 265071634 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEosRR1] | Verify memory is not exceeding high utlization | 0.05 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |dut_name| memory utilization percent is |38.6813602508416%| and should be under 70% -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show version| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show version| on kg-topology-CloudEosRR1 INFO root:test_memory.py:71 TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1| INFO root:test_memory.py:73 GIVEN memory utilization is less than |70%| INFO root:test_memory.py:80 WHEN memory utilization is |38.6813602508416| INFO root:test_memory.py:83 THEN test case result is |True%| INFO root:test_memory.py:84 OUTPUT of |show version| is : Arista vEOS Hardware version: Serial number: 9B112703F293F47ADC3EE25318457B64 System MAC address: 0246.bb59.d5ae Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 4 weeks, 5 days, 18 hours and 48 minutes Total memory: 7761392 kB Free memory: 2993404 kB INFO root:tests_tools.py:474 Find Index for test suite: test_memory.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:480 Create test suite test_memory.py in results file INFO root:tests_tools.py:485 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:491 Create test case test_memory_utilization_on_ in results file INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR1 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True, 'actual_output': 38.6813602508416, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1'} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEosRR2] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show users detail| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEosRR2| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 110783 kgrozis command-api E 0:00:12 local | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEosRR2] | Verify management api http server is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEosRR2| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 108137 Last hit: 0 seconds ago Bytes in: 16445767 Bytes out: 265071634 Requests: 101987 Commands: 203974 Duration: 8506.822 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 101987 16445767 265071634 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEosRR1] | Verify tacacs messages are sending correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |show tacacs| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:382 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:388 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEosRR1| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEosRR2] | Verify management api local httpserver is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEosRR2| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 108137 Last hit: 0 seconds ago Bytes in: 16445767 Bytes out: 265071634 Requests: 101987 Commands: 203974 Duration: 8506.822 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 101987 16445767 265071634 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEosRR2] | Verify filesystem is correct and expected files are present | 0.64 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEosRR2|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEosRR2|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEosRR2| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:250 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)), 'name': 'kg-topology-CloudEosRR2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR2', 'hostname': 'kg-topology-CloudEosRR2'}, 'text': 'Hostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 2918892.08, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '93F97AD3A1044C742872BA1CFA684D63', 'systemMacAddress': '06:54:9b:7c:b0:0f', 'bootupTimestamp': 1597281459.0, 'memFree': 2979856, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 4 weeks, 5 days, 18 hours and 48 minutes\nTotal memory: 7818736 kB\nFree memory: 2967364 kB\n\n'}, 'show processes': {'json': {'processes': {'2009': {'totalActiveTime': 2987783, 'memPct': 3.4, 'cpuPct': 102.0, 'startTime': 1597281536.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1714': {'totalActiveTime': 11831, 'memPct': 1.9, 'cpuPct': 0.4, 'startTime': 1597281523.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '8684': {'totalActiveTime': 2718, 'memPct': 0.7, 'cpuPct': 0.2, 'startTime': 1599077706.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1255': {'totalActiveTime': 5535, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1566': {'totalActiveTime': 5520, 'memPct': 7.2, 'cpuPct': 0.1, 'startTime': 1597281501.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1': {'totalActiveTime': 283, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 26, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '6': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '7': {'totalActiveTime': 46, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 80, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281459.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '346': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:2]', 'state': 'S', 'ttyName': '?'}, '384': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '732': {'totalActiveTime': 82, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '734': {'totalActiveTime': 56, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '742': {'totalActiveTime': 172, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '777': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '797': {'totalActiveTime': 15, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '812': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '823': {'totalActiveTime': 5, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '951': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '979': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '991': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1043': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281473.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1163': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1164': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1197': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1238': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1240': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1254': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1462': {'totalActiveTime': 645, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1470': {'totalActiveTime': 19, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1485': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1522': {'totalActiveTime': 151, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1523': {'totalActiveTime': 2155, 'memPct': 2.5, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1565': {'totalActiveTime': 43, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 104, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1571': {'totalActiveTime': 39, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281502.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1694': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1695': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1696': {'totalActiveTime': 551, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1702': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1704': {'totalActiveTime': 215, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1711': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1712': {'totalActiveTime': 129, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1723': {'totalActiveTime': 256, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1727': {'totalActiveTime': 1015, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1729': {'totalActiveTime': 2055, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 222, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1736': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1737': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1738': {'totalActiveTime': 172, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 448, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1745': {'totalActiveTime': 1560, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1749': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1751': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1753': {'totalActiveTime': 2334, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 87, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 511, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1760': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 205, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1763': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1764': {'totalActiveTime': 1158, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1771': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 286, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1780': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1782': {'totalActiveTime': 131, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1800': {'totalActiveTime': 183, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1810': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1813': {'totalActiveTime': 200, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1830': {'totalActiveTime': 271, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1850': {'totalActiveTime': 206, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1855': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 159, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1872': {'totalActiveTime': 130, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1876': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1880': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1883': {'totalActiveTime': 69, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1885': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1886': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1887': {'totalActiveTime': 103, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1889': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1890': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1892': {'totalActiveTime': 37, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1893': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1895': {'totalActiveTime': 37, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1905': {'totalActiveTime': 390, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1913': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1916': {'totalActiveTime': 37, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 37, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1923': {'totalActiveTime': 212, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1933': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1935': {'totalActiveTime': 130, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1938': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1940': {'totalActiveTime': 484, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1943': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1944': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1945': {'totalActiveTime': 135, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1957': {'totalActiveTime': 227, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1964': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1965': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1966': {'totalActiveTime': 133, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1974': {'totalActiveTime': 661, 'memPct': 2.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2002': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2008': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2286': {'totalActiveTime': 32, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2340': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2602': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2603': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2605': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2656': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2658': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2664': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2667': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2668': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281550.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2736': {'totalActiveTime': 574, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2739': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2766': {'totalActiveTime': 60, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2770': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3341': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3343': {'totalActiveTime': 97, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '8662': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1599077705.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '18367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18369': {'totalActiveTime': 129, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18415': {'totalActiveTime': 107, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '28731': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198560.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '29542': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199280.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '30255': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199941.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '30694': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200300.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '30698': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200303.0, 'cmd': 'sshd: [accepted] ', 'state': 'Ss', 'ttyName': '?'}, '30699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200303.0, 'cmd': 'sshd: [net] ', 'state': 'S', 'ttyName': '?'}, '31064': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200350.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}}, 'timeInfo': {'upTime': 2918892.5, 'loadAvg': [1.18, 1.39, 1.33], 'users': 0, 'currentTime': 1600200351.472098}}, 'text': " 20:05:51 up 33 days, 18:48, 0 users, load average: 1.18, 1.39, 1.33\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2009 102 3.4 ? Sl Aug 13 34-13:56:23 Sfe\n 1714 0.4 1.9 ? Sl Aug 13 03:17:11 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042\n 8684 0.2 0.7 ? SNl Sep 02 00:45:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1255 0.1 0.9 ? S Aug 13 01:32:15 ProcMgr-worker\n 1566 0.1 7.2 ? Sl Aug 13 01:32:00 ConfigAgent\n 1 0.0 0.0 ? Ss Aug 13 00:04:43 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:26 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 7 0.0 0.0 ? S Aug 13 00:00:46 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:20 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2]\n 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 732 0.0 0.0 ? Ss Aug 13 00:01:22 /usr/lib/systemd/systemd-logind\n 734 0.0 0.0 ? Ss Aug 13 00:00:56 /usr/bin/ProcMonitor\n 742 0.0 0.1 ? Ss Aug 13 00:02:52 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 797 0.0 0.0 ? Ss Aug 13 00:00:15 /usr/sbin/crond -n\n 812 0.0 0.0 ? S<s Aug 13 00:00:22 /usr/bin/wdogdev -t 60\n 823 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 979 0.0 0.0 ? S Aug 13 00:00:02 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1462 0.0 0.0 ? S Aug 13 00:10:45 /usr/bin/EosOomAdjust\n 1470 0.0 0.0 ? S Aug 13 00:00:19 [rbfd_vrf_cleanu]\n 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1522 0.0 0.0 ? S Aug 13 00:02:31 /usr/bin/SlabMonitor\n 1523 0.0 2.5 ? S Aug 13 00:35:55 Sysdb\n 1565 0.0 1.2 ? S Aug 13 00:00:43 StageMgr\n 1570 0.0 1.4 ? S Aug 13 00:01:44 Fru\n 1571 0.0 1.8 ? S Aug 13 00:00:39 Launcher\n 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1696 0.0 1.2 ? S Aug 13 00:09:11 Lldp\n 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1704 0.0 1.2 ? S Aug 13 00:03:35 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1712 0.0 1.1 ? S Aug 13 00:02:09 PortSec\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1723 0.0 1.4 ? S Aug 13 00:04:16 Bfd\n 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1727 0.0 1.3 ? S Aug 13 00:16:55 Lag\n 1729 0.0 1.7 ? S Aug 13 00:34:15 SuperServer\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.5 ? S Aug 13 00:03:42 Ira\n 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1738 0.0 1.1 ? S Aug 13 00:02:52 LedPolicy\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.3 ? S Aug 13 00:07:28 EventMgr\n 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1745 0.0 1.2 ? S Aug 13 00:26:00 StpTxRx\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1749 0.0 1.1 ? S Aug 13 00:00:38 StandbyCpld\n 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1753 0.0 1.0 ? S Aug 13 00:38:54 AgentMonitor\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.2 ? S Aug 13 00:01:27 Tunnel\n 1757 0.0 1.5 ? Sl Aug 13 00:08:31 Aaa\n 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 1.2 ? S Aug 13 00:03:25 StpTopology\n 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1764 0.0 1.4 ? S Aug 13 00:19:18 Acl\n 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.1 ? S Aug 13 00:04:46 Stp\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1782 0.0 1.1 ? S Aug 13 00:02:11 KernelNetworkInfo\n 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1800 0.0 1.2 ? S Aug 13 00:03:03 McastCommon6\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1813 0.0 1.2 ? S Aug 13 00:03:20 LacpTxAgent\n 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1830 0.0 1.5 ? S Aug 13 00:04:31 Arp\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1850 0.0 1.4 ? S Aug 13 00:03:26 KernelFib\n 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1866 0.0 1.2 ? S Aug 13 00:02:39 Qos\n 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1872 0.0 1.1 ? S Aug 13 00:02:10 Thermostat\n 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1883 0.0 1.2 ? S Aug 13 00:01:09 L2Rib\n 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1887 0.0 1.2 ? S Aug 13 00:01:43 TopoAgent\n 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1892 0.0 1.0 ? S Aug 13 00:00:37 PowerFuse\n 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1895 0.0 1.1 ? S Aug 13 00:00:37 PowerManager\n 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1905 0.0 1.4 ? S Aug 13 00:06:30 Ebra\n 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1916 0.0 1.1 ? S Aug 13 00:00:37 ReloadCauseAgent\n 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.0 ? S Aug 13 00:00:37 SharedSecretProfile\n 1923 0.0 1.5 ? S Aug 13 00:03:32 IgmpSnooping\n 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1935 0.0 1.3 ? S Aug 13 00:02:10 StaticRoute\n 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1940 0.0 1.6 ? S Aug 13 00:08:04 IpRib\n 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1945 0.0 1.8 ? S Aug 13 00:02:15 BgpCliHelper\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1957 0.0 1.3 ? S Aug 13 00:03:47 ConnectedRoute\n 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1966 0.0 1.3 ? S Aug 13 00:02:13 RouteInput\n 1974 0.0 2.2 ? Sl Aug 13 00:11:01 Bgp\n 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2286 0.0 0.0 ? Ssl Aug 13 00:00:32 /usr/sbin/rsyslogd -n\n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2605 0.0 1.1 ? S Aug 13 00:00:40 LicenseManager\n 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2667 0.0 0.0 ? S Aug 13 00:00:21 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console\n 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2736 0.0 1.2 ? S Aug 13 00:09:34 Ipsec\n 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2766 0.0 0.1 ? Ssl Aug 13 00:01:00 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3343 0.0 0.1 ? Ssl Aug 13 00:01:37 /usr/libexec/strongswan/charon --use-syslog\n 8662 0.0 0.0 ? S Sep 02 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18369 0.0 1.3 ? Sl Aug 14 00:02:09 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18415 0.0 0.1 ? S Aug 14 00:01:47 nginx: worker process \n28731 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:0]\n29542 0.0 0.0 ? S 19:48:00 00:00:00 [kworker/0:2]\n30255 0.0 0.0 ? S 19:59:01 00:00:00 [kworker/0:1]\n30694 0.0 0.0 ? S 20:05:00 00:00:00 [kworker/0:3]\n30698 0.0 0.0 ? Ss 20:05:03 00:00:00 sshd: [accepted] \n30699 0.0 0.0 ? S 20:05:03 00:00:00 sshd: [net] \n31080 0.0 0.0 ? Rs 20:05:50 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 110655, 'authorizationAllowed': 1055, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 0, 'authenticationUnavailable': 116, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 110659\n Failed: 0\n Service unavailable: 116\n\nAuthorization\n Allowed: 1055\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'110783': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600200341, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n110783 kgrozis command-api E 0:00:12 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 512, 'stratum': 4, 'maxEstimatedError': 40, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 40 ms\n polling server every 512 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.116, 'jitter': 0.183, 'lastReceived': 1600199911.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.045, 'peerIpAddr': '169.254.169.123', 'pollInterval': 512, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 445 512 377 0.116 -0.045 0.183\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281524.127587, 'pid': 1714, 'enabled': True, 'uptime': 2918832.55, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1714)\nUptime: 33 days, 18:47:12 (Start time: Thu Aug 13 01:18:44 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 102001, 'bytesOut': 265077835, 'lastHitTime': 1600200357.733444, 'bytesIn': 16448275}}, 'bytesOut': 265077835, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 108153, 'vrf': 'default', 'lastHitTime': 1600200357.7334037, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 8506.992989462946, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 102001, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.13.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.4:443', 'Loopback10 : https://198.18.0.38:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 16448275, 'commandCount': 204002, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 108155\nLast hit: 0 seconds ago\nBytes in: 16448605\nBytes out: 265080063\nRequests: 102003\nCommands: 204006\nDuration: 8507.148 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 102003 16448605 265080063 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.13.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.4:443 \nLoopback10 : https://198.18.0.38:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 16:27:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:40 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:28 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Up to Down diag CtrlTimeout\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state Established event Stop new state Idle\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-3-NOTIFICATION: sent to neighbor 11.201.0.3 (VRF default AS 64512) 6/6 (Cease/other configuration change) 0 bytes\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Down to Up diag None\nSep 15 18:56:27 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state OpenConfirm event Established new state Established\nSep 15 20:05:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 16:27:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:40 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:28 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Up to Down diag CtrlTimeout\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state Established event Stop new state Idle\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-3-NOTIFICATION: sent to neighbor 11.201.0.3 (VRF default AS 64512) 6/6 (Cease/other configuration change) 0 bytes\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Down to Up diag None\nSep 15 18:56:27 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state OpenConfirm event Established new state Established\nSep 15 20:05:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:255 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)) INFO root:tests_tools.py:259 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEosRR2: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:262 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEosRR2: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:316 Open log file for logging test show commands INFO root:tests_tools.py:320 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEosRR2| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:250 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)), 'name': 'kg-topology-CloudEosRR2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR2', 'hostname': 'kg-topology-CloudEosRR2'}, 'text': 'Hostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 2918892.08, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '93F97AD3A1044C742872BA1CFA684D63', 'systemMacAddress': '06:54:9b:7c:b0:0f', 'bootupTimestamp': 1597281459.0, 'memFree': 2979856, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 4 weeks, 5 days, 18 hours and 48 minutes\nTotal memory: 7818736 kB\nFree memory: 2967364 kB\n\n'}, 'show processes': {'json': {'processes': {'2009': {'totalActiveTime': 2987783, 'memPct': 3.4, 'cpuPct': 102.0, 'startTime': 1597281536.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1714': {'totalActiveTime': 11831, 'memPct': 1.9, 'cpuPct': 0.4, 'startTime': 1597281523.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '8684': {'totalActiveTime': 2718, 'memPct': 0.7, 'cpuPct': 0.2, 'startTime': 1599077706.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1255': {'totalActiveTime': 5535, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1566': {'totalActiveTime': 5520, 'memPct': 7.2, 'cpuPct': 0.1, 'startTime': 1597281501.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1': {'totalActiveTime': 283, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 26, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '6': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '7': {'totalActiveTime': 46, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 80, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281459.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '346': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:2]', 'state': 'S', 'ttyName': '?'}, '384': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '732': {'totalActiveTime': 82, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '734': {'totalActiveTime': 56, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '742': {'totalActiveTime': 172, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '777': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '797': {'totalActiveTime': 15, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '812': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '823': {'totalActiveTime': 5, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '951': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '979': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '991': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1043': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281473.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1163': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1164': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1197': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1238': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1240': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1254': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1462': {'totalActiveTime': 645, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1470': {'totalActiveTime': 19, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1485': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1522': {'totalActiveTime': 151, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1523': {'totalActiveTime': 2155, 'memPct': 2.5, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1565': {'totalActiveTime': 43, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 104, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1571': {'totalActiveTime': 39, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281502.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1694': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1695': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1696': {'totalActiveTime': 551, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1702': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1704': {'totalActiveTime': 215, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1711': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1712': {'totalActiveTime': 129, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1723': {'totalActiveTime': 256, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1727': {'totalActiveTime': 1015, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1729': {'totalActiveTime': 2055, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 222, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1736': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1737': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1738': {'totalActiveTime': 172, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 448, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1745': {'totalActiveTime': 1560, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1749': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1751': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1753': {'totalActiveTime': 2334, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 87, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 511, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1760': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 205, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1763': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1764': {'totalActiveTime': 1158, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1771': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 286, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1780': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1782': {'totalActiveTime': 131, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1800': {'totalActiveTime': 183, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1810': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1813': {'totalActiveTime': 200, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1830': {'totalActiveTime': 271, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1850': {'totalActiveTime': 206, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1855': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 159, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1872': {'totalActiveTime': 130, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1876': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1880': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1883': {'totalActiveTime': 69, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1885': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1886': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1887': {'totalActiveTime': 103, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1889': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1890': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1892': {'totalActiveTime': 37, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1893': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1895': {'totalActiveTime': 37, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1905': {'totalActiveTime': 390, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1913': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1916': {'totalActiveTime': 37, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 37, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1923': {'totalActiveTime': 212, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1933': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1935': {'totalActiveTime': 130, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1938': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1940': {'totalActiveTime': 484, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1943': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1944': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1945': {'totalActiveTime': 135, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1957': {'totalActiveTime': 227, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1964': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1965': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1966': {'totalActiveTime': 133, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1974': {'totalActiveTime': 661, 'memPct': 2.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2002': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2008': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2286': {'totalActiveTime': 32, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2340': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2602': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2603': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2605': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2656': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2658': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2664': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2667': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2668': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281550.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2736': {'totalActiveTime': 574, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2739': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2766': {'totalActiveTime': 60, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2770': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3341': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3343': {'totalActiveTime': 97, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '8662': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1599077705.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '18367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18369': {'totalActiveTime': 129, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18415': {'totalActiveTime': 107, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '28731': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198560.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '29542': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199280.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '30255': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199941.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '30694': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200300.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '30698': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200303.0, 'cmd': 'sshd: [accepted] ', 'state': 'Ss', 'ttyName': '?'}, '30699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200303.0, 'cmd': 'sshd: [net] ', 'state': 'S', 'ttyName': '?'}, '31064': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200350.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}}, 'timeInfo': {'upTime': 2918892.5, 'loadAvg': [1.18, 1.39, 1.33], 'users': 0, 'currentTime': 1600200351.472098}}, 'text': " 20:05:51 up 33 days, 18:48, 0 users, load average: 1.18, 1.39, 1.33\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2009 102 3.4 ? Sl Aug 13 34-13:56:23 Sfe\n 1714 0.4 1.9 ? Sl Aug 13 03:17:11 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042\n 8684 0.2 0.7 ? SNl Sep 02 00:45:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1255 0.1 0.9 ? S Aug 13 01:32:15 ProcMgr-worker\n 1566 0.1 7.2 ? Sl Aug 13 01:32:00 ConfigAgent\n 1 0.0 0.0 ? Ss Aug 13 00:04:43 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:26 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 7 0.0 0.0 ? S Aug 13 00:00:46 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:20 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2]\n 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 732 0.0 0.0 ? Ss Aug 13 00:01:22 /usr/lib/systemd/systemd-logind\n 734 0.0 0.0 ? Ss Aug 13 00:00:56 /usr/bin/ProcMonitor\n 742 0.0 0.1 ? Ss Aug 13 00:02:52 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 797 0.0 0.0 ? Ss Aug 13 00:00:15 /usr/sbin/crond -n\n 812 0.0 0.0 ? S<s Aug 13 00:00:22 /usr/bin/wdogdev -t 60\n 823 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 979 0.0 0.0 ? S Aug 13 00:00:02 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1462 0.0 0.0 ? S Aug 13 00:10:45 /usr/bin/EosOomAdjust\n 1470 0.0 0.0 ? S Aug 13 00:00:19 [rbfd_vrf_cleanu]\n 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1522 0.0 0.0 ? S Aug 13 00:02:31 /usr/bin/SlabMonitor\n 1523 0.0 2.5 ? S Aug 13 00:35:55 Sysdb\n 1565 0.0 1.2 ? S Aug 13 00:00:43 StageMgr\n 1570 0.0 1.4 ? S Aug 13 00:01:44 Fru\n 1571 0.0 1.8 ? S Aug 13 00:00:39 Launcher\n 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1696 0.0 1.2 ? S Aug 13 00:09:11 Lldp\n 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1704 0.0 1.2 ? S Aug 13 00:03:35 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1712 0.0 1.1 ? S Aug 13 00:02:09 PortSec\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1723 0.0 1.4 ? S Aug 13 00:04:16 Bfd\n 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1727 0.0 1.3 ? S Aug 13 00:16:55 Lag\n 1729 0.0 1.7 ? S Aug 13 00:34:15 SuperServer\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.5 ? S Aug 13 00:03:42 Ira\n 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1738 0.0 1.1 ? S Aug 13 00:02:52 LedPolicy\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.3 ? S Aug 13 00:07:28 EventMgr\n 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1745 0.0 1.2 ? S Aug 13 00:26:00 StpTxRx\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1749 0.0 1.1 ? S Aug 13 00:00:38 StandbyCpld\n 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1753 0.0 1.0 ? S Aug 13 00:38:54 AgentMonitor\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.2 ? S Aug 13 00:01:27 Tunnel\n 1757 0.0 1.5 ? Sl Aug 13 00:08:31 Aaa\n 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 1.2 ? S Aug 13 00:03:25 StpTopology\n 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1764 0.0 1.4 ? S Aug 13 00:19:18 Acl\n 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.1 ? S Aug 13 00:04:46 Stp\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1782 0.0 1.1 ? S Aug 13 00:02:11 KernelNetworkInfo\n 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1800 0.0 1.2 ? S Aug 13 00:03:03 McastCommon6\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1813 0.0 1.2 ? S Aug 13 00:03:20 LacpTxAgent\n 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1830 0.0 1.5 ? S Aug 13 00:04:31 Arp\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1850 0.0 1.4 ? S Aug 13 00:03:26 KernelFib\n 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1866 0.0 1.2 ? S Aug 13 00:02:39 Qos\n 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1872 0.0 1.1 ? S Aug 13 00:02:10 Thermostat\n 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1883 0.0 1.2 ? S Aug 13 00:01:09 L2Rib\n 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1887 0.0 1.2 ? S Aug 13 00:01:43 TopoAgent\n 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1892 0.0 1.0 ? S Aug 13 00:00:37 PowerFuse\n 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1895 0.0 1.1 ? S Aug 13 00:00:37 PowerManager\n 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1905 0.0 1.4 ? S Aug 13 00:06:30 Ebra\n 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1916 0.0 1.1 ? S Aug 13 00:00:37 ReloadCauseAgent\n 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.0 ? S Aug 13 00:00:37 SharedSecretProfile\n 1923 0.0 1.5 ? S Aug 13 00:03:32 IgmpSnooping\n 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1935 0.0 1.3 ? S Aug 13 00:02:10 StaticRoute\n 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1940 0.0 1.6 ? S Aug 13 00:08:04 IpRib\n 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1945 0.0 1.8 ? S Aug 13 00:02:15 BgpCliHelper\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1957 0.0 1.3 ? S Aug 13 00:03:47 ConnectedRoute\n 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1966 0.0 1.3 ? S Aug 13 00:02:13 RouteInput\n 1974 0.0 2.2 ? Sl Aug 13 00:11:01 Bgp\n 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2286 0.0 0.0 ? Ssl Aug 13 00:00:32 /usr/sbin/rsyslogd -n\n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2605 0.0 1.1 ? S Aug 13 00:00:40 LicenseManager\n 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2667 0.0 0.0 ? S Aug 13 00:00:21 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console\n 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2736 0.0 1.2 ? S Aug 13 00:09:34 Ipsec\n 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2766 0.0 0.1 ? Ssl Aug 13 00:01:00 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3343 0.0 0.1 ? Ssl Aug 13 00:01:37 /usr/libexec/strongswan/charon --use-syslog\n 8662 0.0 0.0 ? S Sep 02 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18369 0.0 1.3 ? Sl Aug 14 00:02:09 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18415 0.0 0.1 ? S Aug 14 00:01:47 nginx: worker process \n28731 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:0]\n29542 0.0 0.0 ? S 19:48:00 00:00:00 [kworker/0:2]\n30255 0.0 0.0 ? S 19:59:01 00:00:00 [kworker/0:1]\n30694 0.0 0.0 ? S 20:05:00 00:00:00 [kworker/0:3]\n30698 0.0 0.0 ? Ss 20:05:03 00:00:00 sshd: [accepted] \n30699 0.0 0.0 ? S 20:05:03 00:00:00 sshd: [net] \n31080 0.0 0.0 ? Rs 20:05:50 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 110655, 'authorizationAllowed': 1055, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 0, 'authenticationUnavailable': 116, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 110659\n Failed: 0\n Service unavailable: 116\n\nAuthorization\n Allowed: 1055\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'110783': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600200341, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n110783 kgrozis command-api E 0:00:12 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 512, 'stratum': 4, 'maxEstimatedError': 40, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 40 ms\n polling server every 512 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.116, 'jitter': 0.183, 'lastReceived': 1600199911.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.045, 'peerIpAddr': '169.254.169.123', 'pollInterval': 512, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 445 512 377 0.116 -0.045 0.183\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281524.127587, 'pid': 1714, 'enabled': True, 'uptime': 2918832.55, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1714)\nUptime: 33 days, 18:47:12 (Start time: Thu Aug 13 01:18:44 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 102001, 'bytesOut': 265077835, 'lastHitTime': 1600200357.733444, 'bytesIn': 16448275}}, 'bytesOut': 265077835, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 108153, 'vrf': 'default', 'lastHitTime': 1600200357.7334037, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 8506.992989462946, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 102001, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.13.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.4:443', 'Loopback10 : https://198.18.0.38:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 16448275, 'commandCount': 204002, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 108155\nLast hit: 0 seconds ago\nBytes in: 16448605\nBytes out: 265080063\nRequests: 102003\nCommands: 204006\nDuration: 8507.148 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 102003 16448605 265080063 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.13.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.4:443 \nLoopback10 : https://198.18.0.38:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 16:27:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:40 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:28 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Up to Down diag CtrlTimeout\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state Established event Stop new state Idle\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-3-NOTIFICATION: sent to neighbor 11.201.0.3 (VRF default AS 64512) 6/6 (Cease/other configuration change) 0 bytes\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Down to Up diag None\nSep 15 18:56:27 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state OpenConfirm event Established new state Established\nSep 15 20:05:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 16:27:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:40 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:28 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Up to Down diag CtrlTimeout\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state Established event Stop new state Idle\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-3-NOTIFICATION: sent to neighbor 11.201.0.3 (VRF default AS 64512) 6/6 (Cease/other configuration change) 0 bytes\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Down to Up diag None\nSep 15 18:56:27 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state OpenConfirm event Established new state Established\nSep 15 20:05:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:255 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)) INFO root:tests_tools.py:259 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEosRR2: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:262 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEosRR2: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:316 Open log file for logging test show commands INFO root:tests_tools.py:320 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEosRR2| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:250 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)), 'name': 'kg-topology-CloudEosRR2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR2', 'hostname': 'kg-topology-CloudEosRR2'}, 'text': 'Hostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 2918892.08, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '93F97AD3A1044C742872BA1CFA684D63', 'systemMacAddress': '06:54:9b:7c:b0:0f', 'bootupTimestamp': 1597281459.0, 'memFree': 2979856, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 4 weeks, 5 days, 18 hours and 48 minutes\nTotal memory: 7818736 kB\nFree memory: 2967364 kB\n\n'}, 'show processes': {'json': {'processes': {'2009': {'totalActiveTime': 2987783, 'memPct': 3.4, 'cpuPct': 102.0, 'startTime': 1597281536.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1714': {'totalActiveTime': 11831, 'memPct': 1.9, 'cpuPct': 0.4, 'startTime': 1597281523.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '8684': {'totalActiveTime': 2718, 'memPct': 0.7, 'cpuPct': 0.2, 'startTime': 1599077706.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1255': {'totalActiveTime': 5535, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1566': {'totalActiveTime': 5520, 'memPct': 7.2, 'cpuPct': 0.1, 'startTime': 1597281501.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1': {'totalActiveTime': 283, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 26, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '6': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '7': {'totalActiveTime': 46, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 80, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281459.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '346': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:2]', 'state': 'S', 'ttyName': '?'}, '384': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '732': {'totalActiveTime': 82, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '734': {'totalActiveTime': 56, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '742': {'totalActiveTime': 172, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '777': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '797': {'totalActiveTime': 15, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '812': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '823': {'totalActiveTime': 5, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '951': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '979': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '991': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1043': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281473.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1163': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1164': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1197': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1238': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1240': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1254': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1462': {'totalActiveTime': 645, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1470': {'totalActiveTime': 19, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1485': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1522': {'totalActiveTime': 151, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1523': {'totalActiveTime': 2155, 'memPct': 2.5, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1565': {'totalActiveTime': 43, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 104, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1571': {'totalActiveTime': 39, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281502.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1694': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1695': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1696': {'totalActiveTime': 551, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1702': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1704': {'totalActiveTime': 215, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1711': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1712': {'totalActiveTime': 129, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1723': {'totalActiveTime': 256, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1727': {'totalActiveTime': 1015, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1729': {'totalActiveTime': 2055, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 222, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1736': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1737': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1738': {'totalActiveTime': 172, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 448, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1745': {'totalActiveTime': 1560, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1749': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1751': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1753': {'totalActiveTime': 2334, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 87, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 511, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1760': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 205, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1763': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1764': {'totalActiveTime': 1158, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1771': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 286, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1780': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1782': {'totalActiveTime': 131, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1800': {'totalActiveTime': 183, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1810': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1813': {'totalActiveTime': 200, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1830': {'totalActiveTime': 271, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1850': {'totalActiveTime': 206, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1855': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 159, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1872': {'totalActiveTime': 130, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1876': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1880': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1883': {'totalActiveTime': 69, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1885': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1886': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1887': {'totalActiveTime': 103, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1889': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1890': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1892': {'totalActiveTime': 37, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1893': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1895': {'totalActiveTime': 37, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1905': {'totalActiveTime': 390, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1913': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1916': {'totalActiveTime': 37, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 37, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1923': {'totalActiveTime': 212, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1933': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1935': {'totalActiveTime': 130, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1938': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1940': {'totalActiveTime': 484, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1943': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1944': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1945': {'totalActiveTime': 135, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1957': {'totalActiveTime': 227, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1964': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1965': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1966': {'totalActiveTime': 133, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1974': {'totalActiveTime': 661, 'memPct': 2.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2002': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2008': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2286': {'totalActiveTime': 32, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2340': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2602': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2603': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2605': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2656': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2658': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2664': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2667': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2668': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281550.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2736': {'totalActiveTime': 574, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2739': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2766': {'totalActiveTime': 60, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2770': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3341': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3343': {'totalActiveTime': 97, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '8662': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1599077705.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '18367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18369': {'totalActiveTime': 129, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18415': {'totalActiveTime': 107, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '28731': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198560.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '29542': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199280.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '30255': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199941.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '30694': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200300.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '30698': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200303.0, 'cmd': 'sshd: [accepted] ', 'state': 'Ss', 'ttyName': '?'}, '30699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200303.0, 'cmd': 'sshd: [net] ', 'state': 'S', 'ttyName': '?'}, '31064': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200350.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}}, 'timeInfo': {'upTime': 2918892.5, 'loadAvg': [1.18, 1.39, 1.33], 'users': 0, 'currentTime': 1600200351.472098}}, 'text': " 20:05:51 up 33 days, 18:48, 0 users, load average: 1.18, 1.39, 1.33\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2009 102 3.4 ? Sl Aug 13 34-13:56:23 Sfe\n 1714 0.4 1.9 ? Sl Aug 13 03:17:11 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042\n 8684 0.2 0.7 ? SNl Sep 02 00:45:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1255 0.1 0.9 ? S Aug 13 01:32:15 ProcMgr-worker\n 1566 0.1 7.2 ? Sl Aug 13 01:32:00 ConfigAgent\n 1 0.0 0.0 ? Ss Aug 13 00:04:43 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:26 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 7 0.0 0.0 ? S Aug 13 00:00:46 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:20 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2]\n 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 732 0.0 0.0 ? Ss Aug 13 00:01:22 /usr/lib/systemd/systemd-logind\n 734 0.0 0.0 ? Ss Aug 13 00:00:56 /usr/bin/ProcMonitor\n 742 0.0 0.1 ? Ss Aug 13 00:02:52 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 797 0.0 0.0 ? Ss Aug 13 00:00:15 /usr/sbin/crond -n\n 812 0.0 0.0 ? S<s Aug 13 00:00:22 /usr/bin/wdogdev -t 60\n 823 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 979 0.0 0.0 ? S Aug 13 00:00:02 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1462 0.0 0.0 ? S Aug 13 00:10:45 /usr/bin/EosOomAdjust\n 1470 0.0 0.0 ? S Aug 13 00:00:19 [rbfd_vrf_cleanu]\n 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1522 0.0 0.0 ? S Aug 13 00:02:31 /usr/bin/SlabMonitor\n 1523 0.0 2.5 ? S Aug 13 00:35:55 Sysdb\n 1565 0.0 1.2 ? S Aug 13 00:00:43 StageMgr\n 1570 0.0 1.4 ? S Aug 13 00:01:44 Fru\n 1571 0.0 1.8 ? S Aug 13 00:00:39 Launcher\n 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1696 0.0 1.2 ? S Aug 13 00:09:11 Lldp\n 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1704 0.0 1.2 ? S Aug 13 00:03:35 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1712 0.0 1.1 ? S Aug 13 00:02:09 PortSec\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1723 0.0 1.4 ? S Aug 13 00:04:16 Bfd\n 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1727 0.0 1.3 ? S Aug 13 00:16:55 Lag\n 1729 0.0 1.7 ? S Aug 13 00:34:15 SuperServer\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.5 ? S Aug 13 00:03:42 Ira\n 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1738 0.0 1.1 ? S Aug 13 00:02:52 LedPolicy\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.3 ? S Aug 13 00:07:28 EventMgr\n 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1745 0.0 1.2 ? S Aug 13 00:26:00 StpTxRx\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1749 0.0 1.1 ? S Aug 13 00:00:38 StandbyCpld\n 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1753 0.0 1.0 ? S Aug 13 00:38:54 AgentMonitor\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.2 ? S Aug 13 00:01:27 Tunnel\n 1757 0.0 1.5 ? Sl Aug 13 00:08:31 Aaa\n 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 1.2 ? S Aug 13 00:03:25 StpTopology\n 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1764 0.0 1.4 ? S Aug 13 00:19:18 Acl\n 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.1 ? S Aug 13 00:04:46 Stp\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1782 0.0 1.1 ? S Aug 13 00:02:11 KernelNetworkInfo\n 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1800 0.0 1.2 ? S Aug 13 00:03:03 McastCommon6\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1813 0.0 1.2 ? S Aug 13 00:03:20 LacpTxAgent\n 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1830 0.0 1.5 ? S Aug 13 00:04:31 Arp\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1850 0.0 1.4 ? S Aug 13 00:03:26 KernelFib\n 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1866 0.0 1.2 ? S Aug 13 00:02:39 Qos\n 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1872 0.0 1.1 ? S Aug 13 00:02:10 Thermostat\n 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1883 0.0 1.2 ? S Aug 13 00:01:09 L2Rib\n 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1887 0.0 1.2 ? S Aug 13 00:01:43 TopoAgent\n 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1892 0.0 1.0 ? S Aug 13 00:00:37 PowerFuse\n 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1895 0.0 1.1 ? S Aug 13 00:00:37 PowerManager\n 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1905 0.0 1.4 ? S Aug 13 00:06:30 Ebra\n 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1916 0.0 1.1 ? S Aug 13 00:00:37 ReloadCauseAgent\n 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.0 ? S Aug 13 00:00:37 SharedSecretProfile\n 1923 0.0 1.5 ? S Aug 13 00:03:32 IgmpSnooping\n 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1935 0.0 1.3 ? S Aug 13 00:02:10 StaticRoute\n 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1940 0.0 1.6 ? S Aug 13 00:08:04 IpRib\n 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1945 0.0 1.8 ? S Aug 13 00:02:15 BgpCliHelper\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1957 0.0 1.3 ? S Aug 13 00:03:47 ConnectedRoute\n 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1966 0.0 1.3 ? S Aug 13 00:02:13 RouteInput\n 1974 0.0 2.2 ? Sl Aug 13 00:11:01 Bgp\n 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2286 0.0 0.0 ? Ssl Aug 13 00:00:32 /usr/sbin/rsyslogd -n\n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2605 0.0 1.1 ? S Aug 13 00:00:40 LicenseManager\n 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2667 0.0 0.0 ? S Aug 13 00:00:21 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console\n 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2736 0.0 1.2 ? S Aug 13 00:09:34 Ipsec\n 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2766 0.0 0.1 ? Ssl Aug 13 00:01:00 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3343 0.0 0.1 ? Ssl Aug 13 00:01:37 /usr/libexec/strongswan/charon --use-syslog\n 8662 0.0 0.0 ? S Sep 02 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18369 0.0 1.3 ? Sl Aug 14 00:02:09 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18415 0.0 0.1 ? S Aug 14 00:01:47 nginx: worker process \n28731 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:0]\n29542 0.0 0.0 ? S 19:48:00 00:00:00 [kworker/0:2]\n30255 0.0 0.0 ? S 19:59:01 00:00:00 [kworker/0:1]\n30694 0.0 0.0 ? S 20:05:00 00:00:00 [kworker/0:3]\n30698 0.0 0.0 ? Ss 20:05:03 00:00:00 sshd: [accepted] \n30699 0.0 0.0 ? S 20:05:03 00:00:00 sshd: [net] \n31080 0.0 0.0 ? Rs 20:05:50 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 110655, 'authorizationAllowed': 1055, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 0, 'authenticationUnavailable': 116, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 110659\n Failed: 0\n Service unavailable: 116\n\nAuthorization\n Allowed: 1055\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'110783': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600200341, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n110783 kgrozis command-api E 0:00:12 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 512, 'stratum': 4, 'maxEstimatedError': 40, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 40 ms\n polling server every 512 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.116, 'jitter': 0.183, 'lastReceived': 1600199911.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.045, 'peerIpAddr': '169.254.169.123', 'pollInterval': 512, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 445 512 377 0.116 -0.045 0.183\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281524.127587, 'pid': 1714, 'enabled': True, 'uptime': 2918832.55, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1714)\nUptime: 33 days, 18:47:12 (Start time: Thu Aug 13 01:18:44 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 102001, 'bytesOut': 265077835, 'lastHitTime': 1600200357.733444, 'bytesIn': 16448275}}, 'bytesOut': 265077835, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 108153, 'vrf': 'default', 'lastHitTime': 1600200357.7334037, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 8506.992989462946, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 102001, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.13.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.4:443', 'Loopback10 : https://198.18.0.38:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 16448275, 'commandCount': 204002, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 108155\nLast hit: 0 seconds ago\nBytes in: 16448605\nBytes out: 265080063\nRequests: 102003\nCommands: 204006\nDuration: 8507.148 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 102003 16448605 265080063 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.13.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.4:443 \nLoopback10 : https://198.18.0.38:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 16:27:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:40 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:28 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Up to Down diag CtrlTimeout\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state Established event Stop new state Idle\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-3-NOTIFICATION: sent to neighbor 11.201.0.3 (VRF default AS 64512) 6/6 (Cease/other configuration change) 0 bytes\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Down to Up diag None\nSep 15 18:56:27 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state OpenConfirm event Established new state Established\nSep 15 20:05:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 16:27:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:40 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:28 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Up to Down diag CtrlTimeout\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state Established event Stop new state Idle\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-3-NOTIFICATION: sent to neighbor 11.201.0.3 (VRF default AS 64512) 6/6 (Cease/other configuration change) 0 bytes\nSep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Down to Up diag None\nSep 15 18:56:27 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state OpenConfirm event Established new state Established\nSep 15 20:05:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:255 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)) INFO root:tests_tools.py:259 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR2: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:262 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR2: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:316 Open log file for logging test show commands INFO root:tests_tools.py:320 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEosRR1] | Verify zerotoucn-config file is on flash | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:365 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEosRR1 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEosRR1| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7293403136 bytes free) | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA exec authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEosRR2] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| 1 second CPU load average is |1.18%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEosRR2| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.18| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 20:05:51 up 33 days, 18:48, 0 users, load average: 1.18, 1.39, 1.33 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 34-13:56:23 Sfe 1714 0.4 1.9 ? Sl Aug 13 03:17:11 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 8684 0.2 0.7 ? SNl Sep 02 00:45:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1255 0.1 0.9 ? S Aug 13 01:32:15 ProcMgr-worker 1566 0.1 7.2 ? Sl Aug 13 01:32:00 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:04:43 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:26 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:46 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:20 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:22 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:00:56 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:02:52 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:15 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:22 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:02 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:10:45 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:19 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:31 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:35:55 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:43 StageMgr 1570 0.0 1.4 ? S Aug 13 00:01:44 Fru 1571 0.0 1.8 ? S Aug 13 00:00:39 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:09:11 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:03:35 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:09 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:04:16 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:16:55 Lag 1729 0.0 1.7 ? S Aug 13 00:34:15 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:03:42 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:02:52 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:07:28 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:26:00 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:38 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:38:54 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:27 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:08:31 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:03:25 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:19:18 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:04:46 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:11 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:03 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:20 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:04:31 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:03:26 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:02:39 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:10 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:09 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:01:43 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:37 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:37 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:06:30 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:37 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:37 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:03:32 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:10 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:08:04 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:15 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:03:47 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:13 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:11:01 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2286 0.0 0.0 ? Ssl Aug 13 00:00:32 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:40 LicenseManager 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:21 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:09:34 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:00 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:37 /usr/libexec/strongswan/charon --use-syslog 8662 0.0 0.0 ? S Sep 02 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:09 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:01:47 nginx: worker process 28731 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:0] 29542 0.0 0.0 ? S 19:48:00 00:00:00 [kworker/0:2] 30255 0.0 0.0 ? S 19:59:01 00:00:00 [kworker/0:1] 30694 0.0 0.0 ? S 20:05:00 00:00:00 [kworker/0:3] 30698 0.0 0.0 ? Ss 20:05:03 00:00:00 sshd: [accepted] 30699 0.0 0.0 ? S 20:05:03 00:00:00 sshd: [net] 31075 0.0 0.0 ? Rs 20:05:50 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww | ||||
| Passed | kg-topology-CloudEosRR2 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEosRR2] | Verify hostname is set on device is correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show hostname| on kg-topology-CloudEosRR2 INFO root:test_host.py:72 TEST is hostname kg-topology-CloudEosRR2 correct INFO root:test_host.py:73 GIVEN hostname kg-topology-CloudEosRR2 INFO root:test_host.py:74 WHEN hostname is kg-topology-CloudEosRR2 INFO root:test_host.py:81 THEN test case result is |False| INFO root:test_host.py:82 OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEosRR2 FQDN: kg-topology-CloudEosRR2 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest does not have input errors | 0.05 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:test_interface.py:263 TEST if interface |Ethernet1| counters has input errors on |kg-topology-CloudEosRR2| INFO root:test_interface.py:265 GIVEN interface input errors of |0| INFO root:test_interface.py:267 WHEN interface input errors is |{actual_output}| INFO root:test_interface.py:274 THEN test case result is |{test_result}| INFO root:test_interface.py:275 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2'} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEosRR2] | Verify 1 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| 1 minute CPU load average is |1.39%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR2| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |1.39| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 20:05:51 up 33 days, 18:48, 0 users, load average: 1.18, 1.39, 1.33 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 34-13:56:23 Sfe 1714 0.4 1.9 ? Sl Aug 13 03:17:11 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 8684 0.2 0.7 ? SNl Sep 02 00:45:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1255 0.1 0.9 ? S Aug 13 01:32:15 ProcMgr-worker 1566 0.1 7.2 ? Sl Aug 13 01:32:00 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:04:43 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:26 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:46 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:20 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:22 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:00:56 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:02:52 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:15 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:22 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:02 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:10:45 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:19 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:31 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:35:55 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:43 StageMgr 1570 0.0 1.4 ? S Aug 13 00:01:44 Fru 1571 0.0 1.8 ? S Aug 13 00:00:39 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:09:11 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:03:35 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:09 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:04:16 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:16:55 Lag 1729 0.0 1.7 ? S Aug 13 00:34:15 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:03:42 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:02:52 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:07:28 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:26:00 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:38 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:38:54 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:27 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:08:31 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:03:25 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:19:18 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:04:46 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:11 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:03 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:20 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:04:31 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:03:26 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:02:39 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:10 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:09 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:01:43 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:37 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:37 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:06:30 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:37 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:37 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:03:32 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:10 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:08:04 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:15 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:03:47 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:13 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:11:01 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2286 0.0 0.0 ? Ssl Aug 13 00:00:32 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:40 LicenseManager 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:21 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:09:34 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:00 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:37 /usr/libexec/strongswan/charon --use-syslog 8662 0.0 0.0 ? S Sep 02 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:09 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:01:47 nginx: worker process 28731 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:0] 29542 0.0 0.0 ? S 19:48:00 00:00:00 [kworker/0:2] 30255 0.0 0.0 ? S 19:59:01 00:00:00 [kworker/0:1] 30694 0.0 0.0 ? S 20:05:00 00:00:00 [kworker/0:3] 30698 0.0 0.0 ? Ss 20:05:03 00:00:00 sshd: [accepted] 30699 0.0 0.0 ? S 20:05:03 00:00:00 sshd: [net] 31075 0.0 0.0 ? Rs 20:05:50 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest protocol statuses are up | 0.05 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:361 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR2 INFO root:test_interface.py:82 TEST if interface |Ethernet1| link prootocol statuses are up on |kg-topology-CloudEosRR2| INFO root:test_interface.py:84 GIVEN interface status is |up| INFO root:test_interface.py:88 WHEN interface status is |up| INFO root:test_interface.py:91 THEN test case result is |True| INFO root:test_interface.py:92 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:489 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 5 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'actual_output': 'up', 'test_result': True, 'dut': 'kg-topology-CloudEosRR2'} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest does not have output errors | 0.07 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:test_interface.py:314 TEST if interface |Ethernet1| counters has output errors on |kg-topology-CloudEosRR2| INFO root:test_interface.py:316 GIVEN interface output errors of |0| INFO root:test_interface.py:318 WHEN interface output errors is |{actual_output}| INFO root:test_interface.py:325 THEN test case result is |{test_result}| INFO root:test_interface.py:326 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 6 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2'} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEosRR2] | Verify 5 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| 5 minute CPU load average is |1.33%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR2| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |1.33| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 20:05:51 up 33 days, 18:48, 0 users, load average: 1.18, 1.39, 1.33 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 34-13:56:23 Sfe 1714 0.4 1.9 ? Sl Aug 13 03:17:11 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 8684 0.2 0.7 ? SNl Sep 02 00:45:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1255 0.1 0.9 ? S Aug 13 01:32:15 ProcMgr-worker 1566 0.1 7.2 ? Sl Aug 13 01:32:00 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:04:43 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:26 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:46 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:20 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:22 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:00:56 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:02:52 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:15 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:22 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:02 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:10:45 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:19 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:31 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:35:55 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:43 StageMgr 1570 0.0 1.4 ? S Aug 13 00:01:44 Fru 1571 0.0 1.8 ? S Aug 13 00:00:39 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:09:11 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:03:35 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:09 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:04:16 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:16:55 Lag 1729 0.0 1.7 ? S Aug 13 00:34:15 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:03:42 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:02:52 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:07:28 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:26:00 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:38 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:38:54 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:27 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:08:31 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:03:25 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:19:18 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:04:46 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:11 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:03 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:20 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:04:31 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:03:26 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:02:39 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:10 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:09 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:01:43 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:37 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:37 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:06:30 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:37 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:37 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:03:32 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:10 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:08:04 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:15 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:03:47 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:13 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:11:01 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2286 0.0 0.0 ? Ssl Aug 13 00:00:32 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:40 LicenseManager 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:21 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:09:34 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:00 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:37 /usr/libexec/strongswan/charon --use-syslog 8662 0.0 0.0 ? S Sep 02 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:09 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:01:47 nginx: worker process 28731 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:0] 29542 0.0 0.0 ? S 19:48:00 00:00:00 [kworker/0:2] 30255 0.0 0.0 ? S 19:59:01 00:00:00 [kworker/0:1] 30694 0.0 0.0 ? S 20:05:00 00:00:00 [kworker/0:3] 30698 0.0 0.0 ? Ss 20:05:03 00:00:00 sshd: [accepted] 30699 0.0 0.0 ? S 20:05:03 00:00:00 sshd: [net] 31075 0.0 0.0 ? Rs 20:05:50 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest link statuses are up | 0.06 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:361 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR2 INFO root:test_interface.py:133 TEST if interface |Ethernet1| link status is up on |kg-topology-CloudEosRR2| INFO root:test_interface.py:135 GIVEN interface status is |connected| INFO root:test_interface.py:139 WHEN interface status is |connected| INFO root:test_interface.py:142 THEN test case result is |True| INFO root:test_interface.py:143 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:489 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'actual_output': 'connected', 'test_result': True, 'dut': 'kg-topology-CloudEosRR2'} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA dot1x authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no frameTooShorts errors | 0.08 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:test_interface.py:365 TEST if interface |Ethernet1| counters has frameTooShorts errors on |kg-topology-CloudEosRR2| INFO root:test_interface.py:367 GIVEN interface frameTooShorts errors of |0| INFO root:test_interface.py:369 WHEN interface frameTooShorts errors is |{actual_output}| INFO root:test_interface.py:376 THEN test case result is |{test_result}| INFO root:test_interface.py:377 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2'} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEosRR2] | Verify a list of daemons are running on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show daemon| on kg-topology-CloudEosRR2 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEosRR2| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1714) Uptime: 33 days, 18:47:11 (Start time: Thu Aug 13 01:18:44 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest physical state is link up | 0.06 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEosRR2 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:361 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:404 Verify if kg-topology-CloudEosRR2 DUT is a VEOS instance INFO root:tests_tools.py:408 kg-topology-CloudEosRR2 is a VEOS instance so returning True INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:489 Test case test_if_intf_phy_status_connected_on_ exists in results file at index 3 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'actual_output': None, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2'} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEosRR2] | Verify a list of daemons are enabled on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEosRR2| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:361 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show daemon| on kg-topology-CloudEosRR2 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1714) Uptime: 33 days, 18:47:11 (Start time: Thu Aug 13 01:18:44 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no frameLongShorts errors | 0.08 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:test_interface.py:416 TEST if interface |Ethernet1| counters has frameTooLongs errors on |kg-topology-CloudEosRR2| INFO root:test_interface.py:418 GIVEN interface frameTooLongs errors of |0| INFO root:test_interface.py:420 WHEN interface frameTooLongs errors is |{actual_output}| INFO root:test_interface.py:427 THEN test case result is |{test_result}| INFO root:test_interface.py:428 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 4 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2'} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEosRR2] | Verify ztp is disabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show zerotouch| on kg-topology-CloudEosRR2 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEosRR2| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA system accounting method-lists are set correct | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEosRR2] | Verify local log messages | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| message |critical| NOT found in local log On router |kg-topology-CloudEosRR2| message |warning| NOT found in local log On router |kg-topology-CloudEosRR2| message |ECC| NOT found in local log On router |kg-topology-CloudEosRR2| message |servers errors| NOT found in local log On router |kg-topology-CloudEosRR2| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show logging| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show logging| on kg-topology-CloudEosRR2 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 16:27:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:28:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:40 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:25:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:30 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:36:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:28 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Up to Down diag CtrlTimeout Sep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state Established event Stop new state Idle Sep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-3-NOTIFICATION: sent to neighbor 11.201.0.3 (VRF default AS 64512) 6/6 (Cease/other configuration change) 0 bytes Sep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Down to Up diag None Sep 15 18:56:27 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state OpenConfirm event Established new state Established Sep 15 20:05:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 16:27:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:28:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:40 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:25:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:30 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:36:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:28 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Up to Down diag CtrlTimeout Sep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state Established event Stop new state Idle Sep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-3-NOTIFICATION: sent to neighbor 11.201.0.3 (VRF default AS 64512) 6/6 (Cease/other configuration change) 0 bytes Sep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Down to Up diag None Sep 15 18:56:27 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state OpenConfirm event Established new state Established Sep 15 20:05:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 16:27:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:28:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:40 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:25:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:30 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:36:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:28 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Up to Down diag CtrlTimeout Sep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state Established event Stop new state Idle Sep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-3-NOTIFICATION: sent to neighbor 11.201.0.3 (VRF default AS 64512) 6/6 (Cease/other configuration change) 0 bytes Sep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Down to Up diag None Sep 15 18:56:27 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state OpenConfirm event Established new state Established Sep 15 20:05:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 16:27:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:28:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:40 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:25:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:30 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:36:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:28 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Up to Down diag CtrlTimeout Sep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state Established event Stop new state Idle Sep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-3-NOTIFICATION: sent to neighbor 11.201.0.3 (VRF default AS 64512) 6/6 (Cease/other configuration change) 0 bytes Sep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Down to Up diag None Sep 15 18:56:27 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state OpenConfirm event Established new state Established Sep 15 20:05:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 16:27:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:28:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:40 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:25:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:30 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:36:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:06 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:28 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Up to Down diag CtrlTimeout Sep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state Established event Stop new state Idle Sep 15 18:56:26 kg-topology-CloudEosRR2 Bgp: %BGP-3-NOTIFICATION: sent to neighbor 11.201.0.3 (VRF default AS 64512) 6/6 (Cease/other configuration change) 0 bytes Sep 15 18:56:26 kg-topology-CloudEosRR2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.3, intf:, srcIp:11.201.0.4, type:multihop) changed state from Down to Up diag None Sep 15 18:56:27 kg-topology-CloudEosRR2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.3 (VRF default AS 64512) old state OpenConfirm event Established new state Established Sep 15 20:05:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEosRR2] | Verify zerotoucn-config file is on flash | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEosRR2 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEosRR2| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7293403136 bytes free) | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEOSEdge1] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEosRR2] | Verify memory is not exceeding high utlization | 0.07 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |dut_name| memory utilization percent is |38.11327048259463%| and should be under 70% -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show version| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show version| on kg-topology-CloudEosRR2 INFO root:test_memory.py:71 TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2| INFO root:test_memory.py:73 GIVEN memory utilization is less than |70%| INFO root:test_memory.py:80 WHEN memory utilization is |38.11327048259463| INFO root:test_memory.py:83 THEN test case result is |True%| INFO root:test_memory.py:84 OUTPUT of |show version| is : Arista vEOS Hardware version: Serial number: 93F97AD3A1044C742872BA1CFA684D63 System MAC address: 0654.9b7c.b00f Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 4 weeks, 5 days, 18 hours and 48 minutes Total memory: 7818736 kB Free memory: 2979856 kB INFO root:tests_tools.py:474 Find Index for test suite: test_memory.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:478 Test suite test_memory.py exists in results file at index 1 INFO root:tests_tools.py:485 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:489 Test case test_memory_utilization_on_ exists in results file at index 0 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEosRR2 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True, 'actual_output': 38.11327048259463, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2'} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEOSEdge1] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show users detail| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEOSEdge1| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 104665 kgrozis command-api E 0:00:12 local | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA priviledge accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEosRR2] | Verify DNS is running by performing pings and verifying name resolution | 1.21 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| DNS resolution |Passed| for google.com On router |kg-topology-CloudEosRR2| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEosRR2| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR2| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (172.217.8.206) 72(100) bytes of data. 76 bytes from ord37s09-in-f14.1e100.net (172.217.8.206): icmp_seq=1 ttl=101 (truncated) 76 bytes from ord37s09-in-f14.1e100.net (172.217.8.206): icmp_seq=2 ttl=101 (truncated) 76 bytes from ord37s09-in-f14.1e100.net (172.217.8.206): icmp_seq=3 ttl=101 (truncated) 76 bytes from ord37s09-in-f14.1e100.net (172.217.8.206): icmp_seq=4 ttl=101 (truncated) 76 bytes from ord37s09-in-f14.1e100.net (172.217.8.206): icmp_seq=5 ttl=101 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 61ms rtt min/avg/max/mdev = 16.956/16.969/16.997/0.083 ms, pipe 2, ipg/ewma 15.265/16.969 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR2| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.129.67) 72(100) bytes of data. 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=1 ttl=39 time=10.6 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=2 ttl=39 time=10.5 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=3 ttl=39 time=10.5 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=4 ttl=39 time=10.5 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=5 ttl=39 time=10.5 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 161ms rtt min/avg/max/mdev = 10.536/10.555/10.600/0.114 ms, pipe 2, ipg/ewma 40.283/10.577 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR2| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=40 time=22.9 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=40 time=22.9 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=40 time=22.9 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=40 time=22.9 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=40 time=22.9 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 83ms rtt min/avg/max/mdev = 22.924/22.956/22.984/0.098 ms, pipe 3, ipg/ewma 20.976/22.967 ms | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEosRR2] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show ntp status| on kg-topology-CloudEosRR2 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEosRR2| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 40 ms polling server every 512 s | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA system accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEosRR2] | Verify ntp peers are correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show ntp associations| on kg-topology-CloudEosRR2 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEosRR2| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 445 512 377 0.116 -0.045 0.183 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA exec authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEOSEdge1] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| 1 second CPU load average is |1.31%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEOSEdge1| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.31| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 20:05:51 up 33 days, 18:48, 0 users, load average: 1.31, 1.26, 1.27 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 34-13:24:55 Sfe 15074 0.8 0.6 ? SNl 19:45:06 00:00:10 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1725 0.4 2.3 ? Sl Aug 13 03:44:31 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Sl Aug 13 01:41:11 ConfigAgent 16416 0.2 0.0 ? Ss 20:05:35 00:00:00 sshd: [accepted] 1233 0.1 0.9 ? S Aug 13 01:32:28 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:28:16 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:04:40 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:27 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:45 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:23 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:02:50 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:00:59 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:20 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:14 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:21 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:04 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:02 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:11:10 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:18 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:25 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:47:10 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:42 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:10 Fru 1585 0.0 1.8 ? S Aug 13 00:01:09 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:08:34 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:03:42 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:02:32 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:04:52 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:17:19 Lag 1754 0.0 1.7 ? S Aug 13 00:33:25 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:14 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:03:26 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:08:08 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:27:44 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:37 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:40:12 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:08:28 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:26 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:04 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:23:31 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:05:25 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:07 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:03:53 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:03:47 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:05:18 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:10 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:11 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:00 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:05 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:20 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:35 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:35 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:06:37 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:37 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:04:17 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:37 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:01:48 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:09:10 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:14 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:09 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:01:52 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:16:44 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:20 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:38 LicenseManager 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:20 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:09:08 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:00:57 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:07:18 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:03:46 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:08 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:03 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 14095 0.0 0.0 ? S 19:31:01 00:00:00 [kworker/0:3] 14852 0.0 0.0 ? S 19:43:01 00:00:00 [kworker/0:1] 15060 0.0 0.0 ? S 19:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 15730 0.0 0.0 ? S 19:55:01 00:00:00 [kworker/0:0] 16133 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:2] 16157 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:4] 16354 0.0 0.0 ? Ss 20:04:06 00:00:00 sshd: [accepted] 16417 0.0 0.0 ? S 20:05:36 00:00:00 sshd: [net] 16771 0.0 0.0 ? S 20:05:51 00:00:00 /bin/sh /sbin/service strongswan status 16778 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 16779 0.0 0.0 ? S 20:05:51 00:00:00 /bin/sh /etc/init.d/strongswan status 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:01:40 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:01:35 nginx: worker process 30730 0.0 0.4 ? Sl Aug 17 00:14:04 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:11:36 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEOSEdge1] | Verify 1 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| 1 minute CPU load average is |1.26%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge1| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |1.26| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 20:05:51 up 33 days, 18:48, 0 users, load average: 1.31, 1.26, 1.27 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 34-13:24:55 Sfe 15074 0.8 0.6 ? SNl 19:45:06 00:00:10 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1725 0.4 2.3 ? Sl Aug 13 03:44:31 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Sl Aug 13 01:41:11 ConfigAgent 16416 0.2 0.0 ? Ss 20:05:35 00:00:00 sshd: [accepted] 1233 0.1 0.9 ? S Aug 13 01:32:28 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:28:16 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:04:40 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:27 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:45 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:23 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:02:50 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:00:59 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:20 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:14 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:21 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:04 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:02 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:11:10 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:18 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:25 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:47:10 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:42 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:10 Fru 1585 0.0 1.8 ? S Aug 13 00:01:09 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:08:34 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:03:42 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:02:32 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:04:52 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:17:19 Lag 1754 0.0 1.7 ? S Aug 13 00:33:25 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:14 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:03:26 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:08:08 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:27:44 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:37 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:40:12 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:08:28 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:26 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:04 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:23:31 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:05:25 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:07 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:03:53 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:03:47 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:05:18 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:10 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:11 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:00 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:05 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:20 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:35 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:35 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:06:37 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:37 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:04:17 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:37 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:01:48 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:09:10 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:14 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:09 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:01:52 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:16:44 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:20 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:38 LicenseManager 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:20 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:09:08 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:00:57 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:07:18 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:03:46 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:08 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:03 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 14095 0.0 0.0 ? S 19:31:01 00:00:00 [kworker/0:3] 14852 0.0 0.0 ? S 19:43:01 00:00:00 [kworker/0:1] 15060 0.0 0.0 ? S 19:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 15730 0.0 0.0 ? S 19:55:01 00:00:00 [kworker/0:0] 16133 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:2] 16157 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:4] 16354 0.0 0.0 ? Ss 20:04:06 00:00:00 sshd: [accepted] 16417 0.0 0.0 ? S 20:05:36 00:00:00 sshd: [net] 16771 0.0 0.0 ? S 20:05:51 00:00:00 /bin/sh /sbin/service strongswan status 16778 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 16779 0.0 0.0 ? S 20:05:51 00:00:00 /bin/sh /etc/init.d/strongswan status 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:01:40 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:01:35 nginx: worker process 30730 0.0 0.4 ? Sl Aug 17 00:14:04 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:11:36 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEosRR2] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEosRR2| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 20:05:51 up 33 days, 18:48, 0 users, load average: 1.18, 1.39, 1.33 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 34-13:56:23 Sfe 1714 0.4 1.9 ? Sl Aug 13 03:17:11 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 8684 0.2 0.7 ? SNl Sep 02 00:45:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1255 0.1 0.9 ? S Aug 13 01:32:15 ProcMgr-worker 1566 0.1 7.2 ? Sl Aug 13 01:32:00 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:04:43 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:26 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:46 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:20 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:22 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:00:56 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:02:52 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:15 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:22 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:02 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:10:45 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:19 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:31 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:35:55 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:43 StageMgr 1570 0.0 1.4 ? S Aug 13 00:01:44 Fru 1571 0.0 1.8 ? S Aug 13 00:00:39 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:09:11 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:03:35 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:09 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:04:16 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:16:55 Lag 1729 0.0 1.7 ? S Aug 13 00:34:15 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:03:42 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:02:52 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:07:28 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:26:00 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:38 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:38:54 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:27 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:08:31 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:03:25 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:19:18 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:04:46 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:11 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:03 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:20 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:04:31 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:03:26 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:02:39 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:10 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:09 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:01:43 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:37 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:37 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:06:30 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:37 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:37 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:03:32 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:10 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:08:04 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:15 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:03:47 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:13 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:11:01 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2286 0.0 0.0 ? Ssl Aug 13 00:00:32 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:40 LicenseManager 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:21 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:09:34 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:00 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:37 /usr/libexec/strongswan/charon --use-syslog 8662 0.0 0.0 ? S Sep 02 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:09 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:01:47 nginx: worker process 28731 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:0] 29542 0.0 0.0 ? S 19:48:00 00:00:00 [kworker/0:2] 30255 0.0 0.0 ? S 19:59:01 00:00:00 [kworker/0:1] 30694 0.0 0.0 ? S 20:05:00 00:00:00 [kworker/0:3] 30698 0.0 0.0 ? Ss 20:05:03 00:00:00 sshd: [accepted] 30699 0.0 0.0 ? S 20:05:03 00:00:00 sshd: [net] 31072 0.0 0.0 ? Rs 20:05:50 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA priviledge accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEOSEdge1] | Verify 5 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| 5 minute CPU load average is |1.27%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge1| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |1.27| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 20:05:51 up 33 days, 18:48, 0 users, load average: 1.31, 1.26, 1.27 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 34-13:24:55 Sfe 15074 0.8 0.6 ? SNl 19:45:06 00:00:10 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1725 0.4 2.3 ? Sl Aug 13 03:44:31 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Sl Aug 13 01:41:11 ConfigAgent 16416 0.2 0.0 ? Ss 20:05:35 00:00:00 sshd: [accepted] 1233 0.1 0.9 ? S Aug 13 01:32:28 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:28:16 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:04:40 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:27 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:45 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:23 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:02:50 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:00:59 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:20 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:14 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:21 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:04 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:02 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:11:10 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:18 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:25 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:47:10 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:42 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:10 Fru 1585 0.0 1.8 ? S Aug 13 00:01:09 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:08:34 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:03:42 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:02:32 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:04:52 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:17:19 Lag 1754 0.0 1.7 ? S Aug 13 00:33:25 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:14 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:03:26 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:08:08 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:27:44 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:37 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:40:12 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:08:28 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:26 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:04 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:23:31 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:05:25 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:07 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:03:53 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:03:47 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:05:18 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:10 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:11 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:00 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:05 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:20 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:35 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:35 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:06:37 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:37 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:04:17 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:37 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:01:48 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:09:10 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:14 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:09 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:01:52 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:16:44 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:20 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:38 LicenseManager 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:20 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:09:08 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:00:57 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:07:18 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:03:46 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:08 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:03 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 14095 0.0 0.0 ? S 19:31:01 00:00:00 [kworker/0:3] 14852 0.0 0.0 ? S 19:43:01 00:00:00 [kworker/0:1] 15060 0.0 0.0 ? S 19:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 15730 0.0 0.0 ? S 19:55:01 00:00:00 [kworker/0:0] 16133 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:2] 16157 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:4] 16354 0.0 0.0 ? Ss 20:04:06 00:00:00 sshd: [accepted] 16417 0.0 0.0 ? S 20:05:36 00:00:00 sshd: [net] 16771 0.0 0.0 ? S 20:05:51 00:00:00 /bin/sh /sbin/service strongswan status 16778 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 16779 0.0 0.0 ? S 20:05:51 00:00:00 /bin/sh /etc/init.d/strongswan status 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:01:40 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:01:35 nginx: worker process 30730 0.0 0.4 ? Sl Aug 17 00:14:04 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:11:36 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEosRR2] | Verify tacacs messages are sending correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show tacacs| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:382 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:388 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEosRR2| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEOSEdge1] | Verify a list of daemons are running on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge1 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEOSEdge1| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1725) Uptime: 33 days, 18:47:19 (Start time: Thu Aug 13 01:18:37 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA dot1x authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEosRR2] | Verify tacacs messages are received correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show tacacs| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:382 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:388 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEosRR2| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEOSEdge1] | Verify management api https server is running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 99735 Last hit: 0 seconds ago Bytes in: 15175553 Bytes out: 269642334 Requests: 94086 Commands: 188172 Duration: 8277.222 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 94086 15175553 269642334 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEOSEdge1] | Verify a list of daemons are enabled on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEOSEdge1| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:361 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge1 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1725) Uptime: 33 days, 18:47:19 (Start time: Thu Aug 13 01:18:37 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEosRR2] | Verify username is set correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| |ec2-user| username is |configured| On router |kg-topology-CloudEosRR2| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:365 Verified output for show command |show running-config section username| on kg-topology-CloudEosRR2 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEosRR2| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEosRR2| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEOSEdge1] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 99735 Last hit: 0 seconds ago Bytes in: 15175553 Bytes out: 269642334 Requests: 94086 Commands: 188172 Duration: 8277.222 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 94086 15175553 269642334 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEOSEdge1] | Verify a list of extension are installed on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| awslogs.swix extension is |installed| On router |kg-topology-CloudEOSEdge1| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge1 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest physical state is link up | 0.06 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEOSEdge1 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:361 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:404 Verify if kg-topology-CloudEOSEdge1 DUT is a VEOS instance INFO root:tests_tools.py:408 kg-topology-CloudEOSEdge1 is a VEOS instance so returning True INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:489 Test case test_if_intf_phy_status_connected_on_ exists in results file at index 3 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'actual_output': None, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1'} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEOSEdge1] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 99735 Last hit: 0 seconds ago Bytes in: 15175553 Bytes out: 269642334 Requests: 94086 Commands: 188172 Duration: 8277.222 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 94086 15175553 269642334 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEOSEdge1] | Verify a list of extension are not erroring on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| awslogs.swix extension error is |False| On router |kg-topology-CloudEOSEdge1| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge1 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest does not have input errors | 0.13 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| inErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:263 TEST if interface |Ethernet1| counters has input errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:265 GIVEN interface input errors of |0| INFO root:test_interface.py:267 WHEN interface input errors is |{actual_output}| INFO root:test_interface.py:274 THEN test case result is |{test_result}| INFO root:test_interface.py:275 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1'} INFO root:test_interface.py:263 TEST if interface |Ethernet2| counters has input errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:265 GIVEN interface input errors of |0| INFO root:test_interface.py:267 WHEN interface input errors is |{actual_output}| INFO root:test_interface.py:274 THEN test case result is |{test_result}| INFO root:test_interface.py:275 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1'} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEOSEdge1] | Verify management api http server is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 99735 Last hit: 0 seconds ago Bytes in: 15175553 Bytes out: 269642334 Requests: 94086 Commands: 188172 Duration: 8277.222 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 94086 15175553 269642334 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEOSEdge1] | Verify DNS is running by performing pings and verifying name resolution | 1.14 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| DNS resolution |Passed| for google.com On router |kg-topology-CloudEOSEdge1| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEOSEdge1| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge1| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (216.58.192.142) 72(100) bytes of data. 76 bytes from ord36s01-in-f142.1e100.net (216.58.192.142): icmp_seq=1 ttl=100 (truncated) 76 bytes from ord36s01-in-f142.1e100.net (216.58.192.142): icmp_seq=2 ttl=100 (truncated) 76 bytes from ord36s01-in-f142.1e100.net (216.58.192.142): icmp_seq=3 ttl=100 (truncated) 76 bytes from ord36s01-in-f142.1e100.net (216.58.192.142): icmp_seq=4 ttl=100 (truncated) 76 bytes from ord36s01-in-f142.1e100.net (216.58.192.142): icmp_seq=5 ttl=100 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 61ms rtt min/avg/max/mdev = 17.257/17.306/17.443/0.069 ms, pipe 2, ipg/ewma 15.464/17.372 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge1| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.193.67) 72(100) bytes of data. 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=1 ttl=39 time=11.3 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=2 ttl=39 time=11.2 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=3 ttl=39 time=11.2 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=4 ttl=39 time=11.2 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=5 ttl=39 time=11.2 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 119ms rtt min/avg/max/mdev = 11.215/11.261/11.390/0.115 ms, pipe 2, ipg/ewma 29.869/11.322 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge1| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=40 time=23.7 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=40 time=23.5 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=40 time=23.5 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=40 time=23.5 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=40 time=23.5 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 85ms rtt min/avg/max/mdev = 23.544/23.614/23.773/0.186 ms, pipe 3, ipg/ewma 21.341/23.691 ms | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEOSEdge1] | Verify management api local httpserver is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 99735 Last hit: 0 seconds ago Bytes in: 15175553 Bytes out: 269642334 Requests: 94086 Commands: 188172 Duration: 8277.222 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 94086 15175553 269642334 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest does not have output errors | 0.15 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| outErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:314 TEST if interface |Ethernet1| counters has output errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:316 GIVEN interface output errors of |0| INFO root:test_interface.py:318 WHEN interface output errors is |{actual_output}| INFO root:test_interface.py:325 THEN test case result is |{test_result}| INFO root:test_interface.py:326 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 6 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1'} INFO root:test_interface.py:314 TEST if interface |Ethernet2| counters has output errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:316 GIVEN interface output errors of |0| INFO root:test_interface.py:318 WHEN interface output errors is |{actual_output}| INFO root:test_interface.py:325 THEN test case result is |{test_result}| INFO root:test_interface.py:326 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 6 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1'} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEOSEdge1] | Verify filesystem is correct and expected files are present | 0.60 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEOSEdge1|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEOSEdge1|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEOSEdge1| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:250 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)), 'name': 'kg-topology-CloudEOSEdge1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge1', 'hostname': 'kg-topology-CloudEOSEdge1'}, 'text': 'Hostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 2918896.84, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DB3968957436BF7623C810C9F13FC97E', 'systemMacAddress': '02:9e:d2:0a:bb:fc', 'bootupTimestamp': 1597281454.0, 'memFree': 2835428, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 4 weeks, 5 days, 18 hours and 48 minutes\nTotal memory: 7818736 kB\nFree memory: 2821996 kB\n\n'}, 'show processes': {'json': {'processes': {'1928': {'totalActiveTime': 2985895, 'memPct': 3.7, 'cpuPct': 102.0, 'startTime': 1597281524.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '15074': {'totalActiveTime': 10, 'memPct': 0.6, 'cpuPct': 0.8, 'startTime': 1600199106.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1725': {'totalActiveTime': 13471, 'memPct': 2.3, 'cpuPct': 0.4, 'startTime': 1597281516.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1582': {'totalActiveTime': 6071, 'memPct': 8.5, 'cpuPct': 0.2, 'startTime': 1597281495.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '16416': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.2, 'startTime': 1600200335.0, 'cmd': 'sshd: [accepted] ', 'state': 'Ss', 'ttyName': '?'}, '1233': {'totalActiveTime': 5548, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '3405': {'totalActiveTime': 5296, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281695.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 280, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 27, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 45, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 83, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281455.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '380': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '407': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '499': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '747': {'totalActiveTime': 170, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '782': {'totalActiveTime': 59, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '789': {'totalActiveTime': 80, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '807': {'totalActiveTime': 14, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '819': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '824': {'totalActiveTime': 4, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '1005': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1007': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1017': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1018': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1034': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1038': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1039': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1064': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1179': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1180': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1213': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1216': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1218': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1232': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1478': {'totalActiveTime': 670, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1486': {'totalActiveTime': 18, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1501': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1538': {'totalActiveTime': 145, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1539': {'totalActiveTime': 2830, 'memPct': 2.6, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1581': {'totalActiveTime': 42, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1584': {'totalActiveTime': 130, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1585': {'totalActiveTime': 69, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 514, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1720': {'totalActiveTime': 222, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1726': {'totalActiveTime': 152, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1745': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1746': {'totalActiveTime': 292, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 1039, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 2005, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1768': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1769': {'totalActiveTime': 254, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1772': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 206, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1775': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1777': {'totalActiveTime': 488, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1779': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 1664, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1781': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1783': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1784': {'totalActiveTime': 37, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1787': {'totalActiveTime': 2412, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1789': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1790': {'totalActiveTime': 508, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1791': {'totalActiveTime': 86, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1794': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1795': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1796': {'totalActiveTime': 244, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1797': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1798': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 1411, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1800': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1802': {'totalActiveTime': 325, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1804': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 127, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1807': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1809': {'totalActiveTime': 233, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1815': {'totalActiveTime': 227, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1817': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1818': {'totalActiveTime': 318, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1821': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 250, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1824': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1826': {'totalActiveTime': 191, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1828': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1831': {'totalActiveTime': 120, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1839': {'totalActiveTime': 65, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1841': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1842': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1844': {'totalActiveTime': 140, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1847': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 35, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1853': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1854': {'totalActiveTime': 35, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1859': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 397, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 37, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1881': {'totalActiveTime': 257, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 37, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 108, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1906': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1907': {'totalActiveTime': 550, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1909': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1910': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1911': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1912': {'totalActiveTime': 134, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1915': {'totalActiveTime': 249, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1916': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1919': {'totalActiveTime': 112, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 1004, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '1922': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '1926': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2295': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2356': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2360': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2363': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2617': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2631': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2634': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2637': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2660': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2661': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2662': {'totalActiveTime': 548, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2671': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2699': {'totalActiveTime': 57, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3281': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3289': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3290': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3295': {'totalActiveTime': 438, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3297': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3301': {'totalActiveTime': 226, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3304': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3307': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3308': {'totalActiveTime': 248, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3365': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3367': {'totalActiveTime': 63, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3403': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3404': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3929': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281918.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '4048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281919.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '8818': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1599873559.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '14095': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198261.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '14852': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198981.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '15060': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199105.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '15730': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199701.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '16133': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200061.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '16157': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200061.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '16354': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200246.0, 'cmd': 'sshd: [accepted] ', 'state': 'Ss', 'ttyName': '?'}, '16417': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200336.0, 'cmd': 'sshd: [net] ', 'state': 'S', 'ttyName': '?'}, '16768': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200351.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '16769': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200351.0, 'cmd': 'uptime', 'state': 'Rs', 'ttyName': '?'}, '18981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18982': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18983': {'totalActiveTime': 100, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '19027': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '19029': {'totalActiveTime': 95, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30730': {'totalActiveTime': 844, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597697371.0, 'cmd': 'dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay', 'state': 'Sl', 'ttyName': '?'}, '30750': {'totalActiveTime': 696, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597697372.0, 'cmd': 'docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc', 'state': 'Ssl', 'ttyName': '?'}}, 'timeInfo': {'upTime': 2918897.29, 'loadAvg': [1.31, 1.26, 1.27], 'users': 0, 'currentTime': 1600200351.582132}}, 'text': " 20:05:52 up 33 days, 18:48, 0 users, load average: 1.31, 1.26, 1.27\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 1928 102 3.7 ? Sl Aug 13 34-13:24:55 Sfe\n15074 0.8 0.6 ? SNl 19:45:06 00:00:10 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1725 0.4 2.3 ? Sl Aug 13 03:44:31 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1582 0.2 8.6 ? Sl Aug 13 01:41:12 ConfigAgent\n16416 0.2 0.0 ? Ss 20:05:35 00:00:00 sshd: [accepted] \n 1233 0.1 0.9 ? S Aug 13 01:32:28 ProcMgr-worker\n 3405 0.1 1.4 ? S Aug 13 01:28:16 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:04:40 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:27 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:45 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:23 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 747 0.0 0.1 ? Ss Aug 13 00:02:50 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 782 0.0 0.0 ? Ss Aug 13 00:00:59 /usr/bin/ProcMonitor\n 789 0.0 0.0 ? Ss Aug 13 00:01:20 /usr/lib/systemd/systemd-logind\n 807 0.0 0.0 ? Ss Aug 13 00:00:14 /usr/sbin/crond -n\n 819 0.0 0.0 ? S<s Aug 13 00:00:21 /usr/bin/wdogdev -t 60\n 824 0.0 0.0 ? Ss Aug 13 00:00:04 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1017 0.0 0.0 ? S Aug 13 00:00:02 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1478 0.0 0.0 ? S Aug 13 00:11:10 /usr/bin/EosOomAdjust\n 1486 0.0 0.0 ? S Aug 13 00:00:18 [rbfd_vrf_cleanu]\n 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1538 0.0 0.0 ? S Aug 13 00:02:25 /usr/bin/SlabMonitor\n 1539 0.0 2.6 ? S Aug 13 00:47:10 Sysdb\n 1581 0.0 1.2 ? S Aug 13 00:00:42 StageMgr\n 1584 0.0 1.4 ? S Aug 13 00:02:10 Fru\n 1585 0.0 1.8 ? S Aug 13 00:01:09 Launcher\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1718 0.0 1.2 ? S Aug 13 00:08:34 Lldp\n 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1720 0.0 1.2 ? S Aug 13 00:03:42 McastCommon\n 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1726 0.0 1.1 ? S Aug 13 00:02:32 PortSec\n 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1746 0.0 1.4 ? S Aug 13 00:04:52 Bfd\n 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.3 ? S Aug 13 00:17:19 Lag\n 1754 0.0 1.7 ? S Aug 13 00:33:25 SuperServer\n 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1769 0.0 1.5 ? S Aug 13 00:04:14 Ira\n 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.2 ? S Aug 13 00:03:26 LedPolicy\n 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1777 0.0 1.3 ? S Aug 13 00:08:08 EventMgr\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.2 ? S Aug 13 00:27:44 StpTxRx\n 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1784 0.0 1.1 ? S Aug 13 00:00:37 StandbyCpld\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1787 0.0 1.0 ? S Aug 13 00:40:12 AgentMonitor\n 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1790 0.0 1.6 ? Sl Aug 13 00:08:28 Aaa\n 1791 0.0 1.2 ? S Aug 13 00:01:26 Tunnel\n 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1796 0.0 1.2 ? S Aug 13 00:04:04 StpTopology\n 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1799 0.0 1.4 ? S Aug 13 00:23:31 Acl\n 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1802 0.0 1.1 ? S Aug 13 00:05:25 Stp\n 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.1 ? S Aug 13 00:02:07 KernelNetworkInfo\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1809 0.0 1.2 ? S Aug 13 00:03:53 McastCommon6\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1815 0.0 1.2 ? S Aug 13 00:03:47 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1818 0.0 1.5 ? S Aug 13 00:05:18 Arp\n 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.4 ? S Aug 13 00:04:10 KernelFib\n 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1826 0.0 1.2 ? S Aug 13 00:03:11 Qos\n 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1831 0.0 1.1 ? S Aug 13 00:02:00 Thermostat\n 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1839 0.0 1.2 ? S Aug 13 00:01:05 L2Rib\n 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1844 0.0 1.2 ? S Aug 13 00:02:20 TopoAgent\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1849 0.0 1.1 ? S Aug 13 00:00:35 PowerFuse\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1854 0.0 1.1 ? S Aug 13 00:00:35 PowerManager\n 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1860 0.0 1.4 ? S Aug 13 00:06:37 Ebra\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.1 ? S Aug 13 00:00:37 ReloadCauseAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1881 0.0 1.5 ? S Aug 13 00:04:17 IgmpSnooping\n 1883 0.0 1.1 ? S Aug 13 00:00:37 SharedSecretProfile\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.3 ? S Aug 13 00:01:48 StaticRoute\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1907 0.0 1.7 ? S Aug 13 00:09:10 IpRib\n 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1912 0.0 1.9 ? S Aug 13 00:02:14 BgpCliHelper\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1915 0.0 1.3 ? S Aug 13 00:04:09 ConnectedRoute\n 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1919 0.0 1.3 ? S Aug 13 00:01:52 RouteInput\n 1920 0.0 2.3 ? Sl Aug 13 00:16:44 Bgp\n 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2295 0.0 0.0 ? Ssl Aug 13 00:00:20 /usr/sbin/rsyslogd -n\n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2363 0.0 1.1 ? S Aug 13 00:00:38 LicenseManager\n 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2637 0.0 0.0 ? S Aug 13 00:00:20 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console\n 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2662 0.0 1.2 ? S Aug 13 00:09:08 Ipsec\n 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2699 0.0 0.1 ? Ssl Aug 13 00:00:57 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3295 0.0 1.2 ? S Aug 13 00:07:18 Nat\n 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3301 0.0 1.3 ? S Aug 13 00:03:46 Vxlan\n 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3308 0.0 1.3 ? S Aug 13 00:04:08 VxlanSwFwd\n 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3367 0.0 0.1 ? Ssl Aug 13 00:01:03 /usr/libexec/strongswan/charon --use-syslog\n 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1]\n14095 0.0 0.0 ? S 19:31:01 00:00:00 [kworker/0:3]\n14852 0.0 0.0 ? S 19:43:01 00:00:00 [kworker/0:1]\n15060 0.0 0.0 ? S 19:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n15730 0.0 0.0 ? S 19:55:01 00:00:00 [kworker/0:0]\n16133 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:2]\n16157 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:4]\n16354 0.0 0.0 ? Ss 20:04:06 00:00:00 sshd: [accepted] \n16417 0.0 0.0 ? S 20:05:36 00:00:00 sshd: [net] \n16797 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n16798 0.0 0.0 ? Rs 20:05:51 00:00:00 uptime\n18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18983 0.0 1.3 ? Sl Aug 26 00:01:40 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n19029 0.0 0.1 ? S Aug 26 00:01:35 nginx: worker process \n30730 0.0 0.4 ? Sl Aug 17 00:14:04 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay\n30750 0.0 0.1 ? Ssl Aug 17 00:11:36 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 102849, 'authorizationAllowed': 2579, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 7, 'authenticationUnavailable': 368, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 102852\n Failed: 7\n Service unavailable: 368\n\nAuthorization\n Allowed: 2579\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'104665': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600200341, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n104665 kgrozis command-api E 0:00:12 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 22, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 22 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.132, 'jitter': 0.538, 'lastReceived': 1600199978.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.535, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 377 1024 377 0.132 0.535 0.538\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281517.1969602, 'pid': 1725, 'enabled': True, 'uptime': 2918838.67, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1725)\nUptime: 33 days, 18:47:19 (Start time: Thu Aug 13 01:18:37 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291244544 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291244544 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 94071, 'bytesOut': 269633582, 'lastHitTime': 1600200357.2649796, 'bytesIn': 15173152}}, 'bytesOut': 269633582, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 99720, 'vrf': 'default', 'lastHitTime': 1600200357.2649508, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 8277.074201808195, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 94071, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.14.101:443', 'Ethernet2 : https://11.201.14.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.1:443', 'Loopback10 : https://198.18.0.35:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 15173152, 'commandCount': 188142, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 99724\nLast hit: 0 seconds ago\nBytes in: 15173810\nBytes out: 269635359\nRequests: 94075\nCommands: 188150\nDuration: 8277.115 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 94075 15173810 269635359 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.14.101:443 \nEthernet2 : https://11.201.14.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.1:443 \nLoopback10 : https://198.18.0.35:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 13:53:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 13:54:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:22:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:27:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 20:05:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 13:53:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 13:54:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:22:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:27:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 20:05:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:255 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)) INFO root:tests_tools.py:259 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge1: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:262 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge1: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:316 Open log file for logging test show commands INFO root:tests_tools.py:320 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEOSEdge1| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:250 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)), 'name': 'kg-topology-CloudEOSEdge1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge1', 'hostname': 'kg-topology-CloudEOSEdge1'}, 'text': 'Hostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 2918896.84, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DB3968957436BF7623C810C9F13FC97E', 'systemMacAddress': '02:9e:d2:0a:bb:fc', 'bootupTimestamp': 1597281454.0, 'memFree': 2835428, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 4 weeks, 5 days, 18 hours and 48 minutes\nTotal memory: 7818736 kB\nFree memory: 2821996 kB\n\n'}, 'show processes': {'json': {'processes': {'1928': {'totalActiveTime': 2985895, 'memPct': 3.7, 'cpuPct': 102.0, 'startTime': 1597281524.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '15074': {'totalActiveTime': 10, 'memPct': 0.6, 'cpuPct': 0.8, 'startTime': 1600199106.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1725': {'totalActiveTime': 13471, 'memPct': 2.3, 'cpuPct': 0.4, 'startTime': 1597281516.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1582': {'totalActiveTime': 6071, 'memPct': 8.5, 'cpuPct': 0.2, 'startTime': 1597281495.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '16416': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.2, 'startTime': 1600200335.0, 'cmd': 'sshd: [accepted] ', 'state': 'Ss', 'ttyName': '?'}, '1233': {'totalActiveTime': 5548, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '3405': {'totalActiveTime': 5296, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281695.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 280, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 27, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 45, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 83, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281455.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '380': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '407': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '499': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '747': {'totalActiveTime': 170, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '782': {'totalActiveTime': 59, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '789': {'totalActiveTime': 80, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '807': {'totalActiveTime': 14, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '819': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '824': {'totalActiveTime': 4, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '1005': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1007': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1017': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1018': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1034': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1038': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1039': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1064': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1179': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1180': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1213': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1216': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1218': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1232': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1478': {'totalActiveTime': 670, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1486': {'totalActiveTime': 18, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1501': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1538': {'totalActiveTime': 145, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1539': {'totalActiveTime': 2830, 'memPct': 2.6, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1581': {'totalActiveTime': 42, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1584': {'totalActiveTime': 130, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1585': {'totalActiveTime': 69, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 514, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1720': {'totalActiveTime': 222, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1726': {'totalActiveTime': 152, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1745': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1746': {'totalActiveTime': 292, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 1039, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 2005, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1768': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1769': {'totalActiveTime': 254, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1772': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 206, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1775': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1777': {'totalActiveTime': 488, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1779': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 1664, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1781': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1783': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1784': {'totalActiveTime': 37, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1787': {'totalActiveTime': 2412, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1789': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1790': {'totalActiveTime': 508, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1791': {'totalActiveTime': 86, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1794': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1795': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1796': {'totalActiveTime': 244, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1797': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1798': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 1411, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1800': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1802': {'totalActiveTime': 325, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1804': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 127, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1807': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1809': {'totalActiveTime': 233, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1815': {'totalActiveTime': 227, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1817': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1818': {'totalActiveTime': 318, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1821': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 250, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1824': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1826': {'totalActiveTime': 191, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1828': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1831': {'totalActiveTime': 120, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1839': {'totalActiveTime': 65, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1841': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1842': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1844': {'totalActiveTime': 140, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1847': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 35, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1853': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1854': {'totalActiveTime': 35, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1859': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 397, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 37, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1881': {'totalActiveTime': 257, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 37, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 108, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1906': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1907': {'totalActiveTime': 550, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1909': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1910': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1911': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1912': {'totalActiveTime': 134, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1915': {'totalActiveTime': 249, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1916': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1919': {'totalActiveTime': 112, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 1004, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '1922': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '1926': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2295': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2356': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2360': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2363': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2617': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2631': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2634': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2637': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2660': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2661': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2662': {'totalActiveTime': 548, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2671': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2699': {'totalActiveTime': 57, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3281': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3289': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3290': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3295': {'totalActiveTime': 438, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3297': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3301': {'totalActiveTime': 226, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3304': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3307': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3308': {'totalActiveTime': 248, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3365': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3367': {'totalActiveTime': 63, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3403': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3404': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3929': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281918.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '4048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281919.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '8818': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1599873559.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '14095': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198261.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '14852': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198981.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '15060': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199105.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '15730': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199701.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '16133': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200061.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '16157': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200061.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '16354': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200246.0, 'cmd': 'sshd: [accepted] ', 'state': 'Ss', 'ttyName': '?'}, '16417': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200336.0, 'cmd': 'sshd: [net] ', 'state': 'S', 'ttyName': '?'}, '16768': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200351.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '16769': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200351.0, 'cmd': 'uptime', 'state': 'Rs', 'ttyName': '?'}, '18981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18982': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18983': {'totalActiveTime': 100, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '19027': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '19029': {'totalActiveTime': 95, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30730': {'totalActiveTime': 844, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597697371.0, 'cmd': 'dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay', 'state': 'Sl', 'ttyName': '?'}, '30750': {'totalActiveTime': 696, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597697372.0, 'cmd': 'docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc', 'state': 'Ssl', 'ttyName': '?'}}, 'timeInfo': {'upTime': 2918897.29, 'loadAvg': [1.31, 1.26, 1.27], 'users': 0, 'currentTime': 1600200351.582132}}, 'text': " 20:05:52 up 33 days, 18:48, 0 users, load average: 1.31, 1.26, 1.27\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 1928 102 3.7 ? Sl Aug 13 34-13:24:55 Sfe\n15074 0.8 0.6 ? SNl 19:45:06 00:00:10 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1725 0.4 2.3 ? Sl Aug 13 03:44:31 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1582 0.2 8.6 ? Sl Aug 13 01:41:12 ConfigAgent\n16416 0.2 0.0 ? Ss 20:05:35 00:00:00 sshd: [accepted] \n 1233 0.1 0.9 ? S Aug 13 01:32:28 ProcMgr-worker\n 3405 0.1 1.4 ? S Aug 13 01:28:16 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:04:40 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:27 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:45 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:23 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 747 0.0 0.1 ? Ss Aug 13 00:02:50 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 782 0.0 0.0 ? Ss Aug 13 00:00:59 /usr/bin/ProcMonitor\n 789 0.0 0.0 ? Ss Aug 13 00:01:20 /usr/lib/systemd/systemd-logind\n 807 0.0 0.0 ? Ss Aug 13 00:00:14 /usr/sbin/crond -n\n 819 0.0 0.0 ? S<s Aug 13 00:00:21 /usr/bin/wdogdev -t 60\n 824 0.0 0.0 ? Ss Aug 13 00:00:04 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1017 0.0 0.0 ? S Aug 13 00:00:02 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1478 0.0 0.0 ? S Aug 13 00:11:10 /usr/bin/EosOomAdjust\n 1486 0.0 0.0 ? S Aug 13 00:00:18 [rbfd_vrf_cleanu]\n 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1538 0.0 0.0 ? S Aug 13 00:02:25 /usr/bin/SlabMonitor\n 1539 0.0 2.6 ? S Aug 13 00:47:10 Sysdb\n 1581 0.0 1.2 ? S Aug 13 00:00:42 StageMgr\n 1584 0.0 1.4 ? S Aug 13 00:02:10 Fru\n 1585 0.0 1.8 ? S Aug 13 00:01:09 Launcher\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1718 0.0 1.2 ? S Aug 13 00:08:34 Lldp\n 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1720 0.0 1.2 ? S Aug 13 00:03:42 McastCommon\n 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1726 0.0 1.1 ? S Aug 13 00:02:32 PortSec\n 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1746 0.0 1.4 ? S Aug 13 00:04:52 Bfd\n 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.3 ? S Aug 13 00:17:19 Lag\n 1754 0.0 1.7 ? S Aug 13 00:33:25 SuperServer\n 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1769 0.0 1.5 ? S Aug 13 00:04:14 Ira\n 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.2 ? S Aug 13 00:03:26 LedPolicy\n 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1777 0.0 1.3 ? S Aug 13 00:08:08 EventMgr\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.2 ? S Aug 13 00:27:44 StpTxRx\n 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1784 0.0 1.1 ? S Aug 13 00:00:37 StandbyCpld\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1787 0.0 1.0 ? S Aug 13 00:40:12 AgentMonitor\n 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1790 0.0 1.6 ? Sl Aug 13 00:08:28 Aaa\n 1791 0.0 1.2 ? S Aug 13 00:01:26 Tunnel\n 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1796 0.0 1.2 ? S Aug 13 00:04:04 StpTopology\n 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1799 0.0 1.4 ? S Aug 13 00:23:31 Acl\n 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1802 0.0 1.1 ? S Aug 13 00:05:25 Stp\n 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.1 ? S Aug 13 00:02:07 KernelNetworkInfo\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1809 0.0 1.2 ? S Aug 13 00:03:53 McastCommon6\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1815 0.0 1.2 ? S Aug 13 00:03:47 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1818 0.0 1.5 ? S Aug 13 00:05:18 Arp\n 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.4 ? S Aug 13 00:04:10 KernelFib\n 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1826 0.0 1.2 ? S Aug 13 00:03:11 Qos\n 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1831 0.0 1.1 ? S Aug 13 00:02:00 Thermostat\n 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1839 0.0 1.2 ? S Aug 13 00:01:05 L2Rib\n 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1844 0.0 1.2 ? S Aug 13 00:02:20 TopoAgent\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1849 0.0 1.1 ? S Aug 13 00:00:35 PowerFuse\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1854 0.0 1.1 ? S Aug 13 00:00:35 PowerManager\n 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1860 0.0 1.4 ? S Aug 13 00:06:37 Ebra\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.1 ? S Aug 13 00:00:37 ReloadCauseAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1881 0.0 1.5 ? S Aug 13 00:04:17 IgmpSnooping\n 1883 0.0 1.1 ? S Aug 13 00:00:37 SharedSecretProfile\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.3 ? S Aug 13 00:01:48 StaticRoute\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1907 0.0 1.7 ? S Aug 13 00:09:10 IpRib\n 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1912 0.0 1.9 ? S Aug 13 00:02:14 BgpCliHelper\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1915 0.0 1.3 ? S Aug 13 00:04:09 ConnectedRoute\n 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1919 0.0 1.3 ? S Aug 13 00:01:52 RouteInput\n 1920 0.0 2.3 ? Sl Aug 13 00:16:44 Bgp\n 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2295 0.0 0.0 ? Ssl Aug 13 00:00:20 /usr/sbin/rsyslogd -n\n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2363 0.0 1.1 ? S Aug 13 00:00:38 LicenseManager\n 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2637 0.0 0.0 ? S Aug 13 00:00:20 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console\n 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2662 0.0 1.2 ? S Aug 13 00:09:08 Ipsec\n 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2699 0.0 0.1 ? Ssl Aug 13 00:00:57 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3295 0.0 1.2 ? S Aug 13 00:07:18 Nat\n 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3301 0.0 1.3 ? S Aug 13 00:03:46 Vxlan\n 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3308 0.0 1.3 ? S Aug 13 00:04:08 VxlanSwFwd\n 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3367 0.0 0.1 ? Ssl Aug 13 00:01:03 /usr/libexec/strongswan/charon --use-syslog\n 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1]\n14095 0.0 0.0 ? S 19:31:01 00:00:00 [kworker/0:3]\n14852 0.0 0.0 ? S 19:43:01 00:00:00 [kworker/0:1]\n15060 0.0 0.0 ? S 19:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n15730 0.0 0.0 ? S 19:55:01 00:00:00 [kworker/0:0]\n16133 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:2]\n16157 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:4]\n16354 0.0 0.0 ? Ss 20:04:06 00:00:00 sshd: [accepted] \n16417 0.0 0.0 ? S 20:05:36 00:00:00 sshd: [net] \n16797 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n16798 0.0 0.0 ? Rs 20:05:51 00:00:00 uptime\n18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18983 0.0 1.3 ? Sl Aug 26 00:01:40 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n19029 0.0 0.1 ? S Aug 26 00:01:35 nginx: worker process \n30730 0.0 0.4 ? Sl Aug 17 00:14:04 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay\n30750 0.0 0.1 ? Ssl Aug 17 00:11:36 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 102849, 'authorizationAllowed': 2579, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 7, 'authenticationUnavailable': 368, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 102852\n Failed: 7\n Service unavailable: 368\n\nAuthorization\n Allowed: 2579\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'104665': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600200341, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n104665 kgrozis command-api E 0:00:12 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 22, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 22 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.132, 'jitter': 0.538, 'lastReceived': 1600199978.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.535, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 377 1024 377 0.132 0.535 0.538\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281517.1969602, 'pid': 1725, 'enabled': True, 'uptime': 2918838.67, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1725)\nUptime: 33 days, 18:47:19 (Start time: Thu Aug 13 01:18:37 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291244544 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291244544 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 94071, 'bytesOut': 269633582, 'lastHitTime': 1600200357.2649796, 'bytesIn': 15173152}}, 'bytesOut': 269633582, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 99720, 'vrf': 'default', 'lastHitTime': 1600200357.2649508, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 8277.074201808195, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 94071, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.14.101:443', 'Ethernet2 : https://11.201.14.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.1:443', 'Loopback10 : https://198.18.0.35:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 15173152, 'commandCount': 188142, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 99724\nLast hit: 0 seconds ago\nBytes in: 15173810\nBytes out: 269635359\nRequests: 94075\nCommands: 188150\nDuration: 8277.115 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 94075 15173810 269635359 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.14.101:443 \nEthernet2 : https://11.201.14.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.1:443 \nLoopback10 : https://198.18.0.35:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 13:53:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 13:54:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:22:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:27:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 20:05:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 13:53:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 13:54:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:22:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:27:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 20:05:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:255 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)) INFO root:tests_tools.py:259 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge1: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:262 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge1: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:316 Open log file for logging test show commands INFO root:tests_tools.py:320 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEOSEdge1| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:250 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)), 'name': 'kg-topology-CloudEOSEdge1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge1', 'hostname': 'kg-topology-CloudEOSEdge1'}, 'text': 'Hostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 2918896.84, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DB3968957436BF7623C810C9F13FC97E', 'systemMacAddress': '02:9e:d2:0a:bb:fc', 'bootupTimestamp': 1597281454.0, 'memFree': 2835428, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 4 weeks, 5 days, 18 hours and 48 minutes\nTotal memory: 7818736 kB\nFree memory: 2821996 kB\n\n'}, 'show processes': {'json': {'processes': {'1928': {'totalActiveTime': 2985895, 'memPct': 3.7, 'cpuPct': 102.0, 'startTime': 1597281524.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '15074': {'totalActiveTime': 10, 'memPct': 0.6, 'cpuPct': 0.8, 'startTime': 1600199106.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1725': {'totalActiveTime': 13471, 'memPct': 2.3, 'cpuPct': 0.4, 'startTime': 1597281516.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1582': {'totalActiveTime': 6071, 'memPct': 8.5, 'cpuPct': 0.2, 'startTime': 1597281495.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '16416': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.2, 'startTime': 1600200335.0, 'cmd': 'sshd: [accepted] ', 'state': 'Ss', 'ttyName': '?'}, '1233': {'totalActiveTime': 5548, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '3405': {'totalActiveTime': 5296, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281695.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 280, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 27, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 45, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 83, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281455.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '380': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '407': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '499': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '747': {'totalActiveTime': 170, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '782': {'totalActiveTime': 59, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '789': {'totalActiveTime': 80, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '807': {'totalActiveTime': 14, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '819': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '824': {'totalActiveTime': 4, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '1005': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1007': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1017': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1018': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1034': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1038': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1039': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1064': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1179': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1180': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1213': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1216': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1218': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1232': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1478': {'totalActiveTime': 670, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1486': {'totalActiveTime': 18, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1501': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1538': {'totalActiveTime': 145, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1539': {'totalActiveTime': 2830, 'memPct': 2.6, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1581': {'totalActiveTime': 42, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1584': {'totalActiveTime': 130, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1585': {'totalActiveTime': 69, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 514, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1720': {'totalActiveTime': 222, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1726': {'totalActiveTime': 152, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1745': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1746': {'totalActiveTime': 292, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 1039, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 2005, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1768': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1769': {'totalActiveTime': 254, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1772': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 206, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1775': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1777': {'totalActiveTime': 488, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1779': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 1664, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1781': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1783': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1784': {'totalActiveTime': 37, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1787': {'totalActiveTime': 2412, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1789': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1790': {'totalActiveTime': 508, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1791': {'totalActiveTime': 86, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1794': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1795': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1796': {'totalActiveTime': 244, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1797': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1798': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 1411, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1800': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1802': {'totalActiveTime': 325, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1804': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 127, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1807': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1809': {'totalActiveTime': 233, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1815': {'totalActiveTime': 227, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1817': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1818': {'totalActiveTime': 318, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1821': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 250, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1824': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1826': {'totalActiveTime': 191, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1828': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1831': {'totalActiveTime': 120, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1839': {'totalActiveTime': 65, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1841': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1842': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1844': {'totalActiveTime': 140, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1847': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 35, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1853': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1854': {'totalActiveTime': 35, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1859': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 397, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 37, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1881': {'totalActiveTime': 257, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 37, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 108, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1906': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1907': {'totalActiveTime': 550, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1909': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1910': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1911': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1912': {'totalActiveTime': 134, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1915': {'totalActiveTime': 249, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1916': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1919': {'totalActiveTime': 112, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 1004, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '1922': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '1926': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2295': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2356': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2360': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2363': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2617': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2631': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2634': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2637': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2660': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2661': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2662': {'totalActiveTime': 548, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2671': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2699': {'totalActiveTime': 57, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3281': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3289': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3290': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3295': {'totalActiveTime': 438, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3297': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3301': {'totalActiveTime': 226, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3304': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3307': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3308': {'totalActiveTime': 248, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3365': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3367': {'totalActiveTime': 63, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3403': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3404': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3929': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281918.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '4048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281919.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '8818': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1599873559.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '14095': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198261.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '14852': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198981.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '15060': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199105.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '15730': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199701.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '16133': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200061.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '16157': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200061.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '16354': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200246.0, 'cmd': 'sshd: [accepted] ', 'state': 'Ss', 'ttyName': '?'}, '16417': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200336.0, 'cmd': 'sshd: [net] ', 'state': 'S', 'ttyName': '?'}, '16768': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200351.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '16769': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200351.0, 'cmd': 'uptime', 'state': 'Rs', 'ttyName': '?'}, '18981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18982': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18983': {'totalActiveTime': 100, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '19027': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '19029': {'totalActiveTime': 95, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30730': {'totalActiveTime': 844, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597697371.0, 'cmd': 'dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay', 'state': 'Sl', 'ttyName': '?'}, '30750': {'totalActiveTime': 696, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597697372.0, 'cmd': 'docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc', 'state': 'Ssl', 'ttyName': '?'}}, 'timeInfo': {'upTime': 2918897.29, 'loadAvg': [1.31, 1.26, 1.27], 'users': 0, 'currentTime': 1600200351.582132}}, 'text': " 20:05:52 up 33 days, 18:48, 0 users, load average: 1.31, 1.26, 1.27\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 1928 102 3.7 ? Sl Aug 13 34-13:24:55 Sfe\n15074 0.8 0.6 ? SNl 19:45:06 00:00:10 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1725 0.4 2.3 ? Sl Aug 13 03:44:31 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1582 0.2 8.6 ? Sl Aug 13 01:41:12 ConfigAgent\n16416 0.2 0.0 ? Ss 20:05:35 00:00:00 sshd: [accepted] \n 1233 0.1 0.9 ? S Aug 13 01:32:28 ProcMgr-worker\n 3405 0.1 1.4 ? S Aug 13 01:28:16 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:04:40 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:27 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:45 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:23 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 747 0.0 0.1 ? Ss Aug 13 00:02:50 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 782 0.0 0.0 ? Ss Aug 13 00:00:59 /usr/bin/ProcMonitor\n 789 0.0 0.0 ? Ss Aug 13 00:01:20 /usr/lib/systemd/systemd-logind\n 807 0.0 0.0 ? Ss Aug 13 00:00:14 /usr/sbin/crond -n\n 819 0.0 0.0 ? S<s Aug 13 00:00:21 /usr/bin/wdogdev -t 60\n 824 0.0 0.0 ? Ss Aug 13 00:00:04 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1017 0.0 0.0 ? S Aug 13 00:00:02 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1478 0.0 0.0 ? S Aug 13 00:11:10 /usr/bin/EosOomAdjust\n 1486 0.0 0.0 ? S Aug 13 00:00:18 [rbfd_vrf_cleanu]\n 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1538 0.0 0.0 ? S Aug 13 00:02:25 /usr/bin/SlabMonitor\n 1539 0.0 2.6 ? S Aug 13 00:47:10 Sysdb\n 1581 0.0 1.2 ? S Aug 13 00:00:42 StageMgr\n 1584 0.0 1.4 ? S Aug 13 00:02:10 Fru\n 1585 0.0 1.8 ? S Aug 13 00:01:09 Launcher\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1718 0.0 1.2 ? S Aug 13 00:08:34 Lldp\n 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1720 0.0 1.2 ? S Aug 13 00:03:42 McastCommon\n 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1726 0.0 1.1 ? S Aug 13 00:02:32 PortSec\n 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1746 0.0 1.4 ? S Aug 13 00:04:52 Bfd\n 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.3 ? S Aug 13 00:17:19 Lag\n 1754 0.0 1.7 ? S Aug 13 00:33:25 SuperServer\n 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1769 0.0 1.5 ? S Aug 13 00:04:14 Ira\n 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.2 ? S Aug 13 00:03:26 LedPolicy\n 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1777 0.0 1.3 ? S Aug 13 00:08:08 EventMgr\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.2 ? S Aug 13 00:27:44 StpTxRx\n 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1784 0.0 1.1 ? S Aug 13 00:00:37 StandbyCpld\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1787 0.0 1.0 ? S Aug 13 00:40:12 AgentMonitor\n 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1790 0.0 1.6 ? Sl Aug 13 00:08:28 Aaa\n 1791 0.0 1.2 ? S Aug 13 00:01:26 Tunnel\n 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1796 0.0 1.2 ? S Aug 13 00:04:04 StpTopology\n 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1799 0.0 1.4 ? S Aug 13 00:23:31 Acl\n 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1802 0.0 1.1 ? S Aug 13 00:05:25 Stp\n 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.1 ? S Aug 13 00:02:07 KernelNetworkInfo\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1809 0.0 1.2 ? S Aug 13 00:03:53 McastCommon6\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1815 0.0 1.2 ? S Aug 13 00:03:47 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1818 0.0 1.5 ? S Aug 13 00:05:18 Arp\n 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.4 ? S Aug 13 00:04:10 KernelFib\n 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1826 0.0 1.2 ? S Aug 13 00:03:11 Qos\n 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1831 0.0 1.1 ? S Aug 13 00:02:00 Thermostat\n 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1839 0.0 1.2 ? S Aug 13 00:01:05 L2Rib\n 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1844 0.0 1.2 ? S Aug 13 00:02:20 TopoAgent\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1849 0.0 1.1 ? S Aug 13 00:00:35 PowerFuse\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1854 0.0 1.1 ? S Aug 13 00:00:35 PowerManager\n 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1860 0.0 1.4 ? S Aug 13 00:06:37 Ebra\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.1 ? S Aug 13 00:00:37 ReloadCauseAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1881 0.0 1.5 ? S Aug 13 00:04:17 IgmpSnooping\n 1883 0.0 1.1 ? S Aug 13 00:00:37 SharedSecretProfile\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.3 ? S Aug 13 00:01:48 StaticRoute\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1907 0.0 1.7 ? S Aug 13 00:09:10 IpRib\n 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1912 0.0 1.9 ? S Aug 13 00:02:14 BgpCliHelper\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1915 0.0 1.3 ? S Aug 13 00:04:09 ConnectedRoute\n 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1919 0.0 1.3 ? S Aug 13 00:01:52 RouteInput\n 1920 0.0 2.3 ? Sl Aug 13 00:16:44 Bgp\n 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2295 0.0 0.0 ? Ssl Aug 13 00:00:20 /usr/sbin/rsyslogd -n\n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2363 0.0 1.1 ? S Aug 13 00:00:38 LicenseManager\n 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2637 0.0 0.0 ? S Aug 13 00:00:20 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console\n 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2662 0.0 1.2 ? S Aug 13 00:09:08 Ipsec\n 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2699 0.0 0.1 ? Ssl Aug 13 00:00:57 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3295 0.0 1.2 ? S Aug 13 00:07:18 Nat\n 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3301 0.0 1.3 ? S Aug 13 00:03:46 Vxlan\n 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3308 0.0 1.3 ? S Aug 13 00:04:08 VxlanSwFwd\n 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3367 0.0 0.1 ? Ssl Aug 13 00:01:03 /usr/libexec/strongswan/charon --use-syslog\n 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1]\n14095 0.0 0.0 ? S 19:31:01 00:00:00 [kworker/0:3]\n14852 0.0 0.0 ? S 19:43:01 00:00:00 [kworker/0:1]\n15060 0.0 0.0 ? S 19:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n15730 0.0 0.0 ? S 19:55:01 00:00:00 [kworker/0:0]\n16133 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:2]\n16157 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:4]\n16354 0.0 0.0 ? Ss 20:04:06 00:00:00 sshd: [accepted] \n16417 0.0 0.0 ? S 20:05:36 00:00:00 sshd: [net] \n16797 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n16798 0.0 0.0 ? Rs 20:05:51 00:00:00 uptime\n18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18983 0.0 1.3 ? Sl Aug 26 00:01:40 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n19029 0.0 0.1 ? S Aug 26 00:01:35 nginx: worker process \n30730 0.0 0.4 ? Sl Aug 17 00:14:04 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay\n30750 0.0 0.1 ? Ssl Aug 17 00:11:36 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 102849, 'authorizationAllowed': 2579, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 7, 'authenticationUnavailable': 368, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 102852\n Failed: 7\n Service unavailable: 368\n\nAuthorization\n Allowed: 2579\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'104665': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600200341, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n104665 kgrozis command-api E 0:00:12 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 22, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 22 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.132, 'jitter': 0.538, 'lastReceived': 1600199978.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.535, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 377 1024 377 0.132 0.535 0.538\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281517.1969602, 'pid': 1725, 'enabled': True, 'uptime': 2918838.67, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1725)\nUptime: 33 days, 18:47:19 (Start time: Thu Aug 13 01:18:37 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291244544 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291244544 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 94071, 'bytesOut': 269633582, 'lastHitTime': 1600200357.2649796, 'bytesIn': 15173152}}, 'bytesOut': 269633582, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 99720, 'vrf': 'default', 'lastHitTime': 1600200357.2649508, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 8277.074201808195, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 94071, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.14.101:443', 'Ethernet2 : https://11.201.14.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.1:443', 'Loopback10 : https://198.18.0.35:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 15173152, 'commandCount': 188142, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 99724\nLast hit: 0 seconds ago\nBytes in: 15173810\nBytes out: 269635359\nRequests: 94075\nCommands: 188150\nDuration: 8277.115 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 94075 15173810 269635359 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.14.101:443 \nEthernet2 : https://11.201.14.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.1:443 \nLoopback10 : https://198.18.0.35:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 13:53:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 13:54:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:22:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:27:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 20:05:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 13:53:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 13:53:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 13:54:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:21:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:22:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:27:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:36:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 20:05:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:255 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)) INFO root:tests_tools.py:259 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge1: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:262 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge1: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:316 Open log file for logging test show commands INFO root:tests_tools.py:320 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEOSEdge1] | Verify username is set correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| |ec2-user| username is |configured| On router |kg-topology-CloudEOSEdge1| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show running-config section username| on kg-topology-CloudEOSEdge1 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEOSEdge1| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEOSEdge1| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEOSEdge1] | Verify memory is not exceeding high utlization | 0.09 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |dut_name| memory utilization percent is |36.26442944230372%| and should be under 70% -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show version| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show version| on kg-topology-CloudEOSEdge1 INFO root:test_memory.py:71 TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1| INFO root:test_memory.py:73 GIVEN memory utilization is less than |70%| INFO root:test_memory.py:80 WHEN memory utilization is |36.26442944230372| INFO root:test_memory.py:83 THEN test case result is |True%| INFO root:test_memory.py:84 OUTPUT of |show version| is : Arista vEOS Hardware version: Serial number: DB3968957436BF7623C810C9F13FC97E System MAC address: 029e.d20a.bbfc Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 4 weeks, 5 days, 18 hours and 48 minutes Total memory: 7818736 kB Free memory: 2835428 kB INFO root:tests_tools.py:474 Find Index for test suite: test_memory.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:478 Test suite test_memory.py exists in results file at index 1 INFO root:tests_tools.py:485 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:489 Test case test_memory_utilization_on_ exists in results file at index 0 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge1 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True, 'actual_output': 36.26442944230372, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1'} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEOSEdge1] | Verify hostname is set on device is correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show hostname| on kg-topology-CloudEOSEdge1 INFO root:test_host.py:72 TEST is hostname kg-topology-CloudEOSEdge1 correct INFO root:test_host.py:73 GIVEN hostname kg-topology-CloudEOSEdge1 INFO root:test_host.py:74 WHEN hostname is kg-topology-CloudEOSEdge1 INFO root:test_host.py:81 THEN test case result is |False| INFO root:test_host.py:82 OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEOSEdge1 FQDN: kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEOSEdge1] | Verify ztp is disabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show zerotouch| on kg-topology-CloudEOSEdge1 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEOSEdge1| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no frameTooShorts errors | 0.27 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| frameTooShorts, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:365 TEST if interface |Ethernet1| counters has frameTooShorts errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:367 GIVEN interface frameTooShorts errors of |0| INFO root:test_interface.py:369 WHEN interface frameTooShorts errors is |{actual_output}| INFO root:test_interface.py:376 THEN test case result is |{test_result}| INFO root:test_interface.py:377 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1'} INFO root:test_interface.py:365 TEST if interface |Ethernet2| counters has frameTooShorts errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:367 GIVEN interface frameTooShorts errors of |0| INFO root:test_interface.py:369 WHEN interface frameTooShorts errors is |{actual_output}| INFO root:test_interface.py:376 THEN test case result is |{test_result}| INFO root:test_interface.py:377 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1'} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEOSEdge1] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show ntp status| on kg-topology-CloudEOSEdge1 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEOSEdge1| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 22 ms polling server every 1024 s | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEOSEdge1] | Verify zerotoucn-config file is on flash | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEOSEdge1 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEOSEdge1| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7291244544 bytes free) | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEOSEdge2] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest protocol statuses are up | 0.18 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| - On interface |Ethernet2|: interface link line protocol status is set to: |up|, correct state is |up| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:361 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:82 TEST if interface |Ethernet1| link prootocol statuses are up on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:84 GIVEN interface status is |up| INFO root:test_interface.py:88 WHEN interface status is |up| INFO root:test_interface.py:91 THEN test case result is |True| INFO root:test_interface.py:92 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:489 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 5 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'actual_output': 'up', 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1'} INFO root:test_interface.py:82 TEST if interface |Ethernet2| link prootocol statuses are up on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:84 GIVEN interface status is |up| INFO root:test_interface.py:88 WHEN interface status is |up| INFO root:test_interface.py:91 THEN test case result is |True| INFO root:test_interface.py:92 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:489 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 5 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'actual_output': 'up', 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1'} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no frameLongShorts errors | 0.36 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| frameTooLongs, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:416 TEST if interface |Ethernet1| counters has frameTooLongs errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:418 GIVEN interface frameTooLongs errors of |0| INFO root:test_interface.py:420 WHEN interface frameTooLongs errors is |{actual_output}| INFO root:test_interface.py:427 THEN test case result is |{test_result}| INFO root:test_interface.py:428 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 4 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1'} INFO root:test_interface.py:416 TEST if interface |Ethernet2| counters has frameTooLongs errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:418 GIVEN interface frameTooLongs errors of |0| INFO root:test_interface.py:420 WHEN interface frameTooLongs errors is |{actual_output}| INFO root:test_interface.py:427 THEN test case result is |{test_result}| INFO root:test_interface.py:428 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 4 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1'} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEOSEdge1] | Verify ntp peers are correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show ntp associations| on kg-topology-CloudEOSEdge1 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEOSEdge1| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 378 1024 377 0.132 0.535 0.538 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEOSEdge2] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show users detail| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEOSEdge2| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 104361 kgrozis command-api E 0:00:11 local | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest link statuses are up | 0.23 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| - On interface |Ethernet2|: interface link line protocol status is set to: |connected|, correct state is |connected| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:361 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:133 TEST if interface |Ethernet1| link status is up on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:135 GIVEN interface status is |connected| INFO root:test_interface.py:139 WHEN interface status is |connected| INFO root:test_interface.py:142 THEN test case result is |True| INFO root:test_interface.py:143 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:489 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'actual_output': 'connected', 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1'} INFO root:test_interface.py:133 TEST if interface |Ethernet2| link status is up on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:135 GIVEN interface status is |connected| INFO root:test_interface.py:139 WHEN interface status is |connected| INFO root:test_interface.py:142 THEN test case result is |True| INFO root:test_interface.py:143 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:489 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'actual_output': 'connected', 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1'} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEOSEdge1] | Verify local log messages | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| message |critical| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |warning| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |ECC| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |servers errors| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show logging| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show logging| on kg-topology-CloudEOSEdge1 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 13:53:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 13:53:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 13:54:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:21:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:22:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:27:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:28:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:25:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:25:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:36:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 20:05:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 13:53:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 13:53:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 13:54:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:21:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:22:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:27:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:28:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:25:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:25:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:36:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 20:05:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 13:53:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 13:53:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 13:54:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:21:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:22:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:27:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:28:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:25:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:25:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:36:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 20:05:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 13:53:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 13:53:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 13:54:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:21:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:22:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:27:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:28:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:25:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:25:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:36:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 20:05:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 13:53:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 13:53:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 13:54:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:21:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:21:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:22:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:27:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 16:28:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:55 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:25:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:25:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:36:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 20:05:42 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEOSEdge1] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEOSEdge1| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 20:05:51 up 33 days, 18:48, 0 users, load average: 1.31, 1.26, 1.27 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 34-13:24:55 Sfe 15074 0.8 0.6 ? SNl 19:45:06 00:00:10 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1725 0.4 2.3 ? Sl Aug 13 03:44:31 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Dl Aug 13 01:41:11 ConfigAgent 16416 0.2 0.0 ? Ss 20:05:35 00:00:00 sshd: [accepted] 1233 0.1 0.9 ? S Aug 13 01:32:28 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:28:16 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:04:40 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:27 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:45 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:23 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:02:50 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:00:59 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:20 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:14 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:21 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:04 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:02 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:11:10 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:18 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:25 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:47:10 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:42 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:10 Fru 1585 0.0 1.8 ? S Aug 13 00:01:09 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:08:34 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:03:42 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:02:32 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:04:52 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:17:19 Lag 1754 0.0 1.7 ? S Aug 13 00:33:25 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:14 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:03:26 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:08:08 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:27:44 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:37 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:40:12 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:08:28 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:26 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:04 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:23:31 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:05:25 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:07 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:03:53 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:03:47 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:05:18 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:10 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:11 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:00 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:05 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:20 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:35 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:35 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:06:37 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:37 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:04:17 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:37 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:01:48 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:09:10 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:14 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:09 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:01:52 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:16:44 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:20 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:38 LicenseManager 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:20 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:09:08 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:00:57 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:07:18 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:03:46 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:08 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:03 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 14095 0.0 0.0 ? S 19:31:01 00:00:00 [kworker/0:3] 14852 0.0 0.0 ? S 19:43:01 00:00:00 [kworker/0:1] 15060 0.0 0.0 ? S 19:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 15730 0.0 0.0 ? S 19:55:01 00:00:00 [kworker/0:0] 16133 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:2] 16157 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:4] 16354 0.0 0.0 ? Ss 20:04:06 00:00:00 sshd: [accepted] 16417 0.0 0.0 ? S 20:05:36 00:00:00 sshd: [net] 16790 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:01:40 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:01:35 nginx: worker process 30730 0.0 0.4 ? Sl Aug 17 00:14:04 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:11:36 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEOSEdge1] | Verify tacacs messages are sending correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:382 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:388 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEOSEdge1| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA exec authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA dot1x authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA priviledge accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEOSEdge1] | Verify tacacs messages are received correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:365 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:382 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:388 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEOSEdge1| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEOSEdge2] | Verify management api https server is running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 99715 Last hit: 0 seconds ago Bytes in: 15172376 Bytes out: 267606486 Requests: 94067 Commands: 188134 Duration: 10713.362 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 94067 15172376 267606486 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA system accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:361 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEOSEdge2] | Verify 1 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| 1 minute CPU load average is |1.3%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge2| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |1.3| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 20:05:52 up 33 days, 18:48, 0 users, load average: 1.92, 1.30, 1.23 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 34-06:32:08 Sfe 1675 2.5 2.1 ? Sl Aug 13 20:53:50 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 5334 1.0 0.6 ? SNl 17:15:06 00:01:52 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1476 0.3 2.6 ? S Aug 13 02:31:00 Sysdb 1518 0.3 7.6 ? Sl Aug 13 02:58:44 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:00:24 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 01:42:09 IpRib 1703 0.1 1.7 ? S Aug 13 01:02:25 SuperServer 1719 0.1 1.2 ? S Aug 13 00:51:48 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:36:00 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:02:02 Bgp 3369 0.1 1.4 ? S Aug 13 01:34:09 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:07:12 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:18 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:29 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:20 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:03:26 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:00 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:05:14 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:19 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:11:24 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:05:47 StageMgr 1521 0.0 1.4 ? S Aug 13 00:20:32 Fru 1524 0.0 1.8 ? S Aug 13 00:09:52 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:27:57 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:20:44 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:22:37 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:22:05 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:41:00 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:20:58 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:24:46 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:27:22 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:05:50 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:09:27 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:15:16 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:20:52 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:45:39 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:33:37 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:06:50 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:20:48 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:21:00 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:31:03 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:20:55 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:23:34 Qos 1856 0.0 1.1 ? S Aug 13 00:06:50 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:06:52 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:20:48 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:05:49 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:05:49 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:26:45 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:05:50 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:05:49 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:21:05 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:06:51 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:07:00 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:21:02 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:06:52 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:30 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:05:51 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:06 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:43:17 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:02:40 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:44:52 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:21:58 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:23:07 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:03:27 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 5320 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 20922 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:1] 20926 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:4] 21923 0.0 0.0 ? S 19:51:00 00:00:00 [kworker/0:0] 22303 0.0 0.0 ? S 19:57:01 00:00:00 [kworker/0:2] 22627 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:3] 22821 0.0 0.1 ? Ss 20:04:12 00:00:00 sshd: root [priv] 22822 0.0 0.0 ? S 20:04:12 00:00:00 sshd: root [net] 22839 0.0 0.0 ? S 20:04:25 00:00:00 sshd: root [pam] 23267 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:05:37 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:02:16 nginx: worker process | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEOSEdge2] | Verify management api http server is not running | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 99714 Last hit: 0 seconds ago Bytes in: 15172211 Bytes out: 267605224 Requests: 94066 Commands: 188132 Duration: 10713.341 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 94066 15172211 267605224 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEOSEdge2] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 99715 Last hit: 0 seconds ago Bytes in: 15172376 Bytes out: 267606486 Requests: 94067 Commands: 188134 Duration: 10713.362 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 94067 15172376 267606486 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEOSEdge2] | Verify a list of daemons are running on DUT | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge2 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEOSEdge2| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1675) Uptime: 33 days, 18:47:03 (Start time: Thu Aug 13 01:18:53 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEOSEdge2] | Verify 5 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| 5 minute CPU load average is |1.23%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge2| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |1.23| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 20:05:52 up 33 days, 18:48, 0 users, load average: 1.92, 1.30, 1.23 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 34-06:32:08 Sfe 1675 2.5 2.1 ? Sl Aug 13 20:53:50 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 5334 1.0 0.6 ? SNl 17:15:06 00:01:52 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1476 0.3 2.6 ? S Aug 13 02:31:00 Sysdb 1518 0.3 7.6 ? Sl Aug 13 02:58:44 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:00:24 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 01:42:09 IpRib 1703 0.1 1.7 ? S Aug 13 01:02:25 SuperServer 1719 0.1 1.2 ? S Aug 13 00:51:48 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:36:00 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:02:02 Bgp 3369 0.1 1.4 ? S Aug 13 01:34:09 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:07:12 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:18 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:29 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:20 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:03:26 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:00 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:05:14 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:19 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:11:24 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:05:47 StageMgr 1521 0.0 1.4 ? S Aug 13 00:20:32 Fru 1524 0.0 1.8 ? S Aug 13 00:09:52 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:27:57 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:20:44 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:22:37 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:22:05 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:41:00 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:20:58 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:24:46 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:27:22 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:05:50 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:09:27 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:15:16 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:20:52 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:45:39 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:33:37 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:06:50 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:20:48 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:21:00 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:31:03 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:20:55 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:23:34 Qos 1856 0.0 1.1 ? S Aug 13 00:06:50 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:06:52 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:20:48 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:05:49 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:05:49 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:26:45 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:05:50 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:05:49 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:21:05 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:06:51 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:07:00 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:21:02 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:06:52 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:30 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:05:51 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:06 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:43:17 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:02:40 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:44:52 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:21:58 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:23:07 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:03:27 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 5320 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 20922 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:1] 20926 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:4] 21923 0.0 0.0 ? S 19:51:00 00:00:00 [kworker/0:0] 22303 0.0 0.0 ? S 19:57:01 00:00:00 [kworker/0:2] 22627 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:3] 22821 0.0 0.1 ? Ss 20:04:12 00:00:00 sshd: root [priv] 22822 0.0 0.0 ? S 20:04:12 00:00:00 sshd: root [net] 22839 0.0 0.0 ? S 20:04:25 00:00:00 sshd: root [pam] 23267 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:05:37 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:02:16 nginx: worker process | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEOSEdge2] | Verify management api local httpserver is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 99714 Last hit: 0 seconds ago Bytes in: 15172211 Bytes out: 267605224 Requests: 94066 Commands: 188132 Duration: 10713.341 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 94066 15172211 267605224 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEOSEdge2] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:361 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 99715 Last hit: 0 seconds ago Bytes in: 15172376 Bytes out: 267606486 Requests: 94067 Commands: 188134 Duration: 10713.362 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 94067 15172376 267606486 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEOSEdge2] | Verify a list of daemons are enabled on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEOSEdge2| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:361 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge2 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1675) Uptime: 33 days, 18:47:03 (Start time: Thu Aug 13 01:18:53 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEOSEdge2] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| 1 second CPU load average is |1.92%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEOSEdge2| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.92| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 20:05:51 up 33 days, 18:48, 0 users, load average: 1.92, 1.30, 1.23 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 34-06:32:08 Sfe 1675 2.5 2.1 ? Sl Aug 13 20:53:50 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 5334 1.0 0.6 ? SNl 17:15:06 00:01:52 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1476 0.3 2.6 ? S Aug 13 02:30:59 Sysdb 1518 0.3 7.6 ? Sl Aug 13 02:58:44 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:00:24 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 01:42:09 IpRib 1703 0.1 1.7 ? S Aug 13 01:02:25 SuperServer 1719 0.1 1.2 ? S Aug 13 00:51:48 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:36:00 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:02:02 Bgp 3369 0.1 1.4 ? S Aug 13 01:34:09 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:07:12 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:18 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:29 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:20 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:03:26 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:00 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:05:14 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:19 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:11:24 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:05:47 StageMgr 1521 0.0 1.4 ? S Aug 13 00:20:32 Fru 1524 0.0 1.8 ? S Aug 13 00:09:52 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:27:57 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:20:44 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:22:37 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:22:05 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:41:00 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:20:58 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:24:46 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:27:22 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:05:50 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:09:27 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:15:16 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:20:52 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:45:39 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:33:37 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:06:50 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:20:48 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:21:00 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:31:03 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:20:55 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:23:34 Qos 1856 0.0 1.1 ? S Aug 13 00:06:50 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:06:52 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:20:48 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:05:49 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:05:49 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:26:45 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:05:50 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:05:49 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:21:05 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:06:51 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:07:00 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:21:02 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:06:52 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:30 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:05:51 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:06 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:43:17 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:02:40 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:44:52 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:21:58 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:23:07 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:03:27 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 5320 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 20922 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:1] 20926 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:4] 21923 0.0 0.0 ? S 19:51:00 00:00:00 [kworker/0:0] 22303 0.0 0.0 ? S 19:57:01 00:00:00 [kworker/0:2] 22627 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:3] 22821 0.0 0.1 ? Ss 20:04:12 00:00:00 sshd: root [priv] 22822 0.0 0.0 ? S 20:04:12 00:00:00 sshd: root [net] 22839 0.0 0.0 ? S 20:04:25 00:00:00 sshd: root [pam] 23256 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:05:37 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:02:16 nginx: worker process | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEOSEdge2] | Verify a list of extension are not erroring on a DUT | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| awslogs.swix extension error is |False| On router |kg-topology-CloudEOSEdge2| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge2 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEOSEdge2] | Verify hostname is set on device is correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show hostname| on kg-topology-CloudEOSEdge2 INFO root:test_host.py:72 TEST is hostname kg-topology-CloudEOSEdge2 correct INFO root:test_host.py:73 GIVEN hostname kg-topology-CloudEOSEdge2 INFO root:test_host.py:74 WHEN hostname is kg-topology-CloudEOSEdge2 INFO root:test_host.py:81 THEN test case result is |False| INFO root:test_host.py:82 OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEOSEdge2 FQDN: kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEOSEdge2] | Verify a list of extension are installed on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| awslogs.swix extension is |installed| On router |kg-topology-CloudEOSEdge2| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge2 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest protocol statuses are up | 0.23 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| - On interface |Ethernet2|: interface link line protocol status is set to: |up|, correct state is |up| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:361 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:82 TEST if interface |Ethernet1| link prootocol statuses are up on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:84 GIVEN interface status is |up| INFO root:test_interface.py:88 WHEN interface status is |up| INFO root:test_interface.py:91 THEN test case result is |True| INFO root:test_interface.py:92 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:489 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 5 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'actual_output': 'up', 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2'} INFO root:test_interface.py:82 TEST if interface |Ethernet2| link prootocol statuses are up on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:84 GIVEN interface status is |up| INFO root:test_interface.py:88 WHEN interface status is |up| INFO root:test_interface.py:91 THEN test case result is |True| INFO root:test_interface.py:92 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:489 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 5 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'actual_output': 'up', 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2'} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEOSEdge2] | Verify DNS is running by performing pings and verifying name resolution | 1.27 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| DNS resolution |Passed| for google.com On router |kg-topology-CloudEOSEdge2| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEOSEdge2| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge2| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (216.58.192.142) 72(100) bytes of data. 76 bytes from ord36s01-in-f14.1e100.net (216.58.192.142): icmp_seq=1 ttl=101 (truncated) 76 bytes from ord36s01-in-f14.1e100.net (216.58.192.142): icmp_seq=2 ttl=101 (truncated) 76 bytes from ord36s01-in-f14.1e100.net (216.58.192.142): icmp_seq=3 ttl=101 (truncated) 76 bytes from ord36s01-in-f14.1e100.net (216.58.192.142): icmp_seq=4 ttl=101 (truncated) 76 bytes from ord36s01-in-f14.1e100.net (216.58.192.142): icmp_seq=5 ttl=101 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 65ms rtt min/avg/max/mdev = 16.627/16.922/18.047/0.585 ms, pipe 2, ipg/ewma 16.391/17.465 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge2| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.193.67) 72(100) bytes of data. 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=1 ttl=39 time=11.9 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=2 ttl=39 time=10.5 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=3 ttl=39 time=10.5 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=4 ttl=39 time=10.5 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=5 ttl=39 time=10.5 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 167ms rtt min/avg/max/mdev = 10.548/10.831/11.953/0.564 ms, pipe 2, ipg/ewma 41.991/11.372 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge2| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=40 time=24.3 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=40 time=23.0 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=40 time=22.9 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=40 time=22.9 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=40 time=23.0 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 71ms rtt min/avg/max/mdev = 22.982/23.268/24.353/0.542 ms, pipe 3, ipg/ewma 17.951/23.792 ms | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEOSEdge2] | Verify filesystem is correct and expected files are present | 0.68 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEOSEdge2|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEOSEdge2|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEOSEdge2| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:250 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-CloudEOSEdge2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge2', 'hostname': 'kg-topology-CloudEOSEdge2'}, 'text': 'Hostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 2918883.5, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DE52F26D16E91F22BB1B507175C8C765', 'systemMacAddress': '06:35:02:ca:82:97', 'bootupTimestamp': 1597281468.0, 'memFree': 2822824, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 4 weeks, 5 days, 18 hours and 48 minutes\nTotal memory: 7761392 kB\nFree memory: 2821944 kB\n\n'}, 'show processes': {'json': {'processes': {'2025': {'totalActiveTime': 2961128, 'memPct': 3.7, 'cpuPct': 101.0, 'startTime': 1597281547.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1675': {'totalActiveTime': 75230, 'memPct': 2.1, 'cpuPct': 2.5, 'startTime': 1597281532.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '5334': {'totalActiveTime': 112, 'memPct': 0.6, 'cpuPct': 1.0, 'startTime': 1600190106.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1476': {'totalActiveTime': 9059, 'memPct': 2.6, 'cpuPct': 0.3, 'startTime': 1597281508.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1518': {'totalActiveTime': 10723, 'memPct': 7.5, 'cpuPct': 0.3, 'startTime': 1597281511.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1243': {'totalActiveTime': 7224, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1951': {'totalActiveTime': 6129, 'memPct': 1.7, 'cpuPct': 0.2, 'startTime': 1597281544.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 3745, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281534.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 3108, 'memPct': 1.2, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 5760, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1980': {'totalActiveTime': 3722, 'memPct': 2.3, 'cpuPct': 0.1, 'startTime': 1597281546.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '3369': {'totalActiveTime': 5649, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281726.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 432, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 18, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 29, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '378': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '410': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '746': {'totalActiveTime': 206, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 60, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '770': {'totalActiveTime': 314, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '784': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '790': {'totalActiveTime': 5, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '880': {'totalActiveTime': 19, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '889': {'totalActiveTime': 25, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '998': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1000': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1015': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1019': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1021': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1031': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1062': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281482.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1189': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1190': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1224': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1226': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1228': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1242': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1415': {'totalActiveTime': 684, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281507.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1423': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1438': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1475': {'totalActiveTime': 158, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1517': {'totalActiveTime': 347, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1521': {'totalActiveTime': 1232, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1524': {'totalActiveTime': 592, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281512.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1651': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1653': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1654': {'totalActiveTime': 1677, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1659': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1661': {'totalActiveTime': 1244, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1665': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1666': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1668': {'totalActiveTime': 1357, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1669': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1698': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1699': {'totalActiveTime': 1325, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1701': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1702': {'totalActiveTime': 2460, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1709': {'totalActiveTime': 1258, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1710': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1486, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1716': {'totalActiveTime': 1642, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1723': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1724': {'totalActiveTime': 350, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1725': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1730': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1731': {'totalActiveTime': 567, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 916, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1736': {'totalActiveTime': 1252, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1738': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1741': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1743': {'totalActiveTime': 2739, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1756': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1759': {'totalActiveTime': 2017, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 410, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1789': {'totalActiveTime': 1248, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 1260, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1823': {'totalActiveTime': 1863, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1843': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1846': {'totalActiveTime': 1255, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1851': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1855': {'totalActiveTime': 1414, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 410, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1857': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1861': {'totalActiveTime': 412, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1862': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 1248, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1867': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1868': {'totalActiveTime': 349, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1870': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1871': {'totalActiveTime': 349, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1877': {'totalActiveTime': 1605, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1891': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1893': {'totalActiveTime': 350, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 349, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 1265, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1944': {'totalActiveTime': 411, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1950': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1954': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1956': {'totalActiveTime': 420, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1958': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1959': {'totalActiveTime': 1262, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1962': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1963': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1968': {'totalActiveTime': 412, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2011': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2014': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2319': {'totalActiveTime': 30, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2592': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2596': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2597': {'totalActiveTime': 351, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2614': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2633': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 66, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2639': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2666': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281561.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2695': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2696': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2697': {'totalActiveTime': 2597, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2699': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2726': {'totalActiveTime': 160, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281564.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2730': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281567.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3232': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3237': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3242': {'totalActiveTime': 2692, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3254': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3257': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3263': {'totalActiveTime': 1318, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3275': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3277': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3278': {'totalActiveTime': 1387, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3315': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3317': {'totalActiveTime': 207, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3856': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281920.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '3977': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281922.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '5320': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600190105.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '20922': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198560.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '20926': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198560.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '21923': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199460.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '22303': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199821.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '22627': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200061.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '22821': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1600200252.0, 'cmd': 'sshd: root [priv] ', 'state': 'Ss', 'ttyName': '?'}, '22822': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200252.0, 'cmd': 'sshd: root [net] ', 'state': 'S', 'ttyName': '?'}, '22839': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200265.0, 'cmd': 'sshd: root [pam] ', 'state': 'S', 'ttyName': '?'}, '23250': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200350.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '23251': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200350.0, 'cmd': '[uptime] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '26289': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '26290': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '26291': {'totalActiveTime': 337, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '26335': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '26337': {'totalActiveTime': 136, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 2918883.99, 'loadAvg': [1.92, 1.3, 1.23], 'users': 0, 'currentTime': 1600200351.708995}}, 'text': " 20:05:52 up 33 days, 18:48, 0 users, load average: 1.92, 1.30, 1.23\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2025 101 3.7 ? Sl Aug 13 34-06:32:08 Sfe\n 1675 2.5 2.1 ? Sl Aug 13 20:53:50 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042\n 5334 1.0 0.6 ? SNl 17:15:06 00:01:52 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1476 0.3 2.6 ? S Aug 13 02:31:00 Sysdb\n 1518 0.3 7.6 ? Sl Aug 13 02:58:44 ConfigAgent\n 1243 0.2 0.9 ? S Aug 13 02:00:24 ProcMgr-worker\n 1951 0.2 1.7 ? S Aug 13 01:42:09 IpRib\n 1703 0.1 1.7 ? S Aug 13 01:02:25 SuperServer\n 1719 0.1 1.2 ? S Aug 13 00:51:48 StpTxRx\n 1727 0.1 1.0 ? S Aug 13 01:36:00 AgentMonitor\n 1980 0.1 2.3 ? Sl Aug 13 01:02:02 Bgp\n 3369 0.1 1.4 ? S Aug 13 01:34:09 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:07:12 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:18 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:29 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:20 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 746 0.0 0.0 ? Ss Aug 13 00:03:26 /usr/lib/systemd/systemd-logind\n 752 0.0 0.0 ? Ss Aug 13 00:01:00 /usr/bin/ProcMonitor\n 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 770 0.0 0.1 ? Ss Aug 13 00:05:14 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 790 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 880 0.0 0.0 ? Ss Aug 13 00:00:19 /usr/sbin/crond -n\n 889 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60\n 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1415 0.0 0.0 ? S Aug 13 00:11:24 /usr/bin/EosOomAdjust\n 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu]\n 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1475 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor\n 1517 0.0 1.2 ? S Aug 13 00:05:47 StageMgr\n 1521 0.0 1.4 ? S Aug 13 00:20:32 Fru\n 1524 0.0 1.8 ? S Aug 13 00:09:52 Launcher\n 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1654 0.0 1.3 ? S Aug 13 00:27:57 Lldp\n 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1661 0.0 1.2 ? S Aug 13 00:20:44 McastCommon\n 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1668 0.0 1.1 ? S Aug 13 00:22:37 PortSec\n 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1699 0.0 1.4 ? S Aug 13 00:22:05 Bfd\n 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1702 0.0 1.3 ? S Aug 13 00:41:00 Lag\n 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1709 0.0 1.5 ? S Aug 13 00:20:58 Ira\n 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:24:46 LedPolicy\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1716 0.0 1.3 ? S Aug 13 00:27:22 EventMgr\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1724 0.0 1.1 ? S Aug 13 00:05:50 StandbyCpld\n 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1731 0.0 1.2 ? S Aug 13 00:09:27 Tunnel\n 1732 0.0 1.6 ? Sl Aug 13 00:15:16 Aaa\n 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1736 0.0 1.2 ? S Aug 13 00:20:52 StpTopology\n 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1743 0.0 1.4 ? S Aug 13 00:45:39 Acl\n 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1759 0.0 1.1 ? S Aug 13 00:33:37 Stp\n 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.1 ? S Aug 13 00:06:50 KernelNetworkInfo\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1789 0.0 1.2 ? S Aug 13 00:20:48 McastCommon6\n 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.2 ? S Aug 13 00:21:00 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1823 0.0 1.5 ? S Aug 13 00:31:03 Arp\n 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1846 0.0 1.4 ? S Aug 13 00:20:55 KernelFib\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1855 0.0 1.2 ? S Aug 13 00:23:34 Qos\n 1856 0.0 1.1 ? S Aug 13 00:06:50 Thermostat\n 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1861 0.0 1.2 ? S Aug 13 00:06:52 L2Rib\n 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.2 ? S Aug 13 00:20:48 TopoAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1868 0.0 1.1 ? S Aug 13 00:05:49 PowerFuse\n 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1871 0.0 1.1 ? S Aug 13 00:05:49 PowerManager\n 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1877 0.0 1.4 ? S Aug 13 00:26:45 Ebra\n 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1893 0.0 1.1 ? S Aug 13 00:05:50 ReloadCauseAgent\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.1 ? S Aug 13 00:05:49 SharedSecretProfile\n 1905 0.0 1.5 ? S Aug 13 00:21:05 IgmpSnooping\n 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1944 0.0 1.3 ? S Aug 13 00:06:51 StaticRoute\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1956 0.0 1.9 ? S Aug 13 00:07:00 BgpCliHelper\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1959 0.0 1.3 ? S Aug 13 00:21:02 ConnectedRoute\n 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1968 0.0 1.3 ? S Aug 13 00:06:52 RouteInput\n 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2319 0.0 0.0 ? Ssl Aug 13 00:00:30 /usr/sbin/rsyslogd -n\n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2597 0.0 1.1 ? S Aug 13 00:05:51 LicenseManager\n 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2638 0.0 0.0 ? S Aug 13 00:01:06 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console\n 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2697 0.0 1.2 ? S Aug 13 00:43:17 Ipsec\n 2699 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2726 0.0 0.1 ? Ssl Aug 13 00:02:40 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3242 0.0 1.2 ? S Aug 13 00:44:52 Nat\n 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3263 0.0 1.4 ? S Aug 13 00:21:58 Vxlan\n 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3278 0.0 1.4 ? S Aug 13 00:23:07 VxlanSwFwd\n 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3317 0.0 0.1 ? Ssl Aug 13 00:03:27 /usr/libexec/strongswan/charon --use-syslog\n 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0]\n 3977 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 5320 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n20922 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:1]\n20926 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:4]\n21923 0.0 0.0 ? S 19:51:00 00:00:00 [kworker/0:0]\n22303 0.0 0.0 ? S 19:57:01 00:00:00 [kworker/0:2]\n22627 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:3]\n22821 0.0 0.1 ? Ss 20:04:12 00:00:00 sshd: root [priv] \n22822 0.0 0.0 ? S 20:04:12 00:00:00 sshd: root [net] \n22839 0.0 0.0 ? S 20:04:25 00:00:00 sshd: root [pam] \n23266 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26291 0.0 1.3 ? Sl Aug 26 00:05:37 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n26337 0.0 0.1 ? S Aug 26 00:02:16 nginx: worker process \n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 102790, 'authorizationAllowed': 2540, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 2, 'authenticationUnavailable': 135, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 102793\n Failed: 2\n Service unavailable: 135\n\nAuthorization\n Allowed: 2540\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'104361': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600200342, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n104361 kgrozis command-api E 0:00:11 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 27, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 27 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.164, 'jitter': 0.878, 'lastReceived': 1600199808.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -2.739, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 548 1024 377 0.164 -2.739 0.878\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281533.6844301, 'pid': 1675, 'enabled': True, 'uptime': 2918823.5399999996, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1675)\nUptime: 33 days, 18:47:03 (Start time: Thu Aug 13 01:18:53 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291600896 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291600896 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 94063, 'bytesOut': 267602929, 'lastHitTime': 1600200358.4862294, 'bytesIn': 15171714}}, 'bytesOut': 267602929, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 99711, 'vrf': 'default', 'lastHitTime': 1600200358.4861841, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 10713.303316325153, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 94063, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.15.101:443', 'Ethernet2 : https://11.201.15.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.3:443', 'Loopback10 : https://198.18.0.37:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 15171714, 'commandCount': 188126, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 99715\nLast hit: 0 seconds ago\nBytes in: 15172376\nBytes out: 267606486\nRequests: 94067\nCommands: 188134\nDuration: 10713.362 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 94067 15172376 267606486 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.15.101:443 \nEthernet2 : https://11.201.15.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.3:443 \nLoopback10 : https://198.18.0.37:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 16:28:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user default failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:27:32 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:29:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user admin failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:33:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user scan failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:36:37 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:40 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-3-NOTIFICATION: received from neighbor 11.201.0.4 (VRF default AS 64513) 6/6 (Cease/other configuration change) 0 bytes\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state Established event Stop new state Idle\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Up to Down diag NeighDown\nSep 15 18:56:27 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Init to Up diag None\nSep 15 18:56:27 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state OpenConfirm event Established new state Established\nSep 15 19:40:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user eclipse failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 20:05:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 16:28:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user default failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:27:32 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:29:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user admin failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:33:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user scan failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:36:37 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:40 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-3-NOTIFICATION: received from neighbor 11.201.0.4 (VRF default AS 64513) 6/6 (Cease/other configuration change) 0 bytes\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state Established event Stop new state Idle\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Up to Down diag NeighDown\nSep 15 18:56:27 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Init to Up diag None\nSep 15 18:56:27 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state OpenConfirm event Established new state Established\nSep 15 19:40:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user eclipse failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 20:05:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:255 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)) INFO root:tests_tools.py:259 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge2: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:262 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge2: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:316 Open log file for logging test show commands INFO root:tests_tools.py:320 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEOSEdge2| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:250 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-CloudEOSEdge2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge2', 'hostname': 'kg-topology-CloudEOSEdge2'}, 'text': 'Hostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 2918883.5, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DE52F26D16E91F22BB1B507175C8C765', 'systemMacAddress': '06:35:02:ca:82:97', 'bootupTimestamp': 1597281468.0, 'memFree': 2822824, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 4 weeks, 5 days, 18 hours and 48 minutes\nTotal memory: 7761392 kB\nFree memory: 2821944 kB\n\n'}, 'show processes': {'json': {'processes': {'2025': {'totalActiveTime': 2961128, 'memPct': 3.7, 'cpuPct': 101.0, 'startTime': 1597281547.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1675': {'totalActiveTime': 75230, 'memPct': 2.1, 'cpuPct': 2.5, 'startTime': 1597281532.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '5334': {'totalActiveTime': 112, 'memPct': 0.6, 'cpuPct': 1.0, 'startTime': 1600190106.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1476': {'totalActiveTime': 9059, 'memPct': 2.6, 'cpuPct': 0.3, 'startTime': 1597281508.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1518': {'totalActiveTime': 10723, 'memPct': 7.5, 'cpuPct': 0.3, 'startTime': 1597281511.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1243': {'totalActiveTime': 7224, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1951': {'totalActiveTime': 6129, 'memPct': 1.7, 'cpuPct': 0.2, 'startTime': 1597281544.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 3745, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281534.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 3108, 'memPct': 1.2, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 5760, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1980': {'totalActiveTime': 3722, 'memPct': 2.3, 'cpuPct': 0.1, 'startTime': 1597281546.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '3369': {'totalActiveTime': 5649, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281726.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 432, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 18, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 29, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '378': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '410': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '746': {'totalActiveTime': 206, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 60, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '770': {'totalActiveTime': 314, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '784': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '790': {'totalActiveTime': 5, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '880': {'totalActiveTime': 19, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '889': {'totalActiveTime': 25, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '998': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1000': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1015': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1019': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1021': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1031': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1062': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281482.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1189': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1190': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1224': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1226': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1228': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1242': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1415': {'totalActiveTime': 684, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281507.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1423': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1438': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1475': {'totalActiveTime': 158, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1517': {'totalActiveTime': 347, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1521': {'totalActiveTime': 1232, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1524': {'totalActiveTime': 592, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281512.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1651': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1653': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1654': {'totalActiveTime': 1677, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1659': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1661': {'totalActiveTime': 1244, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1665': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1666': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1668': {'totalActiveTime': 1357, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1669': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1698': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1699': {'totalActiveTime': 1325, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1701': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1702': {'totalActiveTime': 2460, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1709': {'totalActiveTime': 1258, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1710': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1486, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1716': {'totalActiveTime': 1642, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1723': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1724': {'totalActiveTime': 350, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1725': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1730': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1731': {'totalActiveTime': 567, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 916, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1736': {'totalActiveTime': 1252, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1738': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1741': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1743': {'totalActiveTime': 2739, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1756': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1759': {'totalActiveTime': 2017, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 410, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1789': {'totalActiveTime': 1248, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 1260, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1823': {'totalActiveTime': 1863, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1843': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1846': {'totalActiveTime': 1255, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1851': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1855': {'totalActiveTime': 1414, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 410, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1857': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1861': {'totalActiveTime': 412, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1862': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 1248, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1867': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1868': {'totalActiveTime': 349, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1870': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1871': {'totalActiveTime': 349, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1877': {'totalActiveTime': 1605, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1891': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1893': {'totalActiveTime': 350, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 349, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 1265, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1944': {'totalActiveTime': 411, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1950': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1954': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1956': {'totalActiveTime': 420, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1958': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1959': {'totalActiveTime': 1262, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1962': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1963': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1968': {'totalActiveTime': 412, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2011': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2014': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2319': {'totalActiveTime': 30, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2592': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2596': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2597': {'totalActiveTime': 351, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2614': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2633': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 66, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2639': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2666': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281561.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2695': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2696': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2697': {'totalActiveTime': 2597, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2699': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2726': {'totalActiveTime': 160, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281564.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2730': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281567.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3232': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3237': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3242': {'totalActiveTime': 2692, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3254': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3257': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3263': {'totalActiveTime': 1318, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3275': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3277': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3278': {'totalActiveTime': 1387, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3315': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3317': {'totalActiveTime': 207, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3856': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281920.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '3977': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281922.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '5320': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600190105.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '20922': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198560.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '20926': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198560.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '21923': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199460.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '22303': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199821.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '22627': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200061.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '22821': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1600200252.0, 'cmd': 'sshd: root [priv] ', 'state': 'Ss', 'ttyName': '?'}, '22822': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200252.0, 'cmd': 'sshd: root [net] ', 'state': 'S', 'ttyName': '?'}, '22839': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200265.0, 'cmd': 'sshd: root [pam] ', 'state': 'S', 'ttyName': '?'}, '23250': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200350.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '23251': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200350.0, 'cmd': '[uptime] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '26289': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '26290': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '26291': {'totalActiveTime': 337, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '26335': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '26337': {'totalActiveTime': 136, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 2918883.99, 'loadAvg': [1.92, 1.3, 1.23], 'users': 0, 'currentTime': 1600200351.708995}}, 'text': " 20:05:52 up 33 days, 18:48, 0 users, load average: 1.92, 1.30, 1.23\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2025 101 3.7 ? Sl Aug 13 34-06:32:08 Sfe\n 1675 2.5 2.1 ? Sl Aug 13 20:53:50 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042\n 5334 1.0 0.6 ? SNl 17:15:06 00:01:52 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1476 0.3 2.6 ? S Aug 13 02:31:00 Sysdb\n 1518 0.3 7.6 ? Sl Aug 13 02:58:44 ConfigAgent\n 1243 0.2 0.9 ? S Aug 13 02:00:24 ProcMgr-worker\n 1951 0.2 1.7 ? S Aug 13 01:42:09 IpRib\n 1703 0.1 1.7 ? S Aug 13 01:02:25 SuperServer\n 1719 0.1 1.2 ? S Aug 13 00:51:48 StpTxRx\n 1727 0.1 1.0 ? S Aug 13 01:36:00 AgentMonitor\n 1980 0.1 2.3 ? Sl Aug 13 01:02:02 Bgp\n 3369 0.1 1.4 ? S Aug 13 01:34:09 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:07:12 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:18 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:29 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:20 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 746 0.0 0.0 ? Ss Aug 13 00:03:26 /usr/lib/systemd/systemd-logind\n 752 0.0 0.0 ? Ss Aug 13 00:01:00 /usr/bin/ProcMonitor\n 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 770 0.0 0.1 ? Ss Aug 13 00:05:14 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 790 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 880 0.0 0.0 ? Ss Aug 13 00:00:19 /usr/sbin/crond -n\n 889 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60\n 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1415 0.0 0.0 ? S Aug 13 00:11:24 /usr/bin/EosOomAdjust\n 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu]\n 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1475 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor\n 1517 0.0 1.2 ? S Aug 13 00:05:47 StageMgr\n 1521 0.0 1.4 ? S Aug 13 00:20:32 Fru\n 1524 0.0 1.8 ? S Aug 13 00:09:52 Launcher\n 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1654 0.0 1.3 ? S Aug 13 00:27:57 Lldp\n 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1661 0.0 1.2 ? S Aug 13 00:20:44 McastCommon\n 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1668 0.0 1.1 ? S Aug 13 00:22:37 PortSec\n 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1699 0.0 1.4 ? S Aug 13 00:22:05 Bfd\n 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1702 0.0 1.3 ? S Aug 13 00:41:00 Lag\n 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1709 0.0 1.5 ? S Aug 13 00:20:58 Ira\n 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:24:46 LedPolicy\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1716 0.0 1.3 ? S Aug 13 00:27:22 EventMgr\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1724 0.0 1.1 ? S Aug 13 00:05:50 StandbyCpld\n 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1731 0.0 1.2 ? S Aug 13 00:09:27 Tunnel\n 1732 0.0 1.6 ? Sl Aug 13 00:15:16 Aaa\n 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1736 0.0 1.2 ? S Aug 13 00:20:52 StpTopology\n 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1743 0.0 1.4 ? S Aug 13 00:45:39 Acl\n 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1759 0.0 1.1 ? S Aug 13 00:33:37 Stp\n 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.1 ? S Aug 13 00:06:50 KernelNetworkInfo\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1789 0.0 1.2 ? S Aug 13 00:20:48 McastCommon6\n 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.2 ? S Aug 13 00:21:00 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1823 0.0 1.5 ? S Aug 13 00:31:03 Arp\n 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1846 0.0 1.4 ? S Aug 13 00:20:55 KernelFib\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1855 0.0 1.2 ? S Aug 13 00:23:34 Qos\n 1856 0.0 1.1 ? S Aug 13 00:06:50 Thermostat\n 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1861 0.0 1.2 ? S Aug 13 00:06:52 L2Rib\n 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.2 ? S Aug 13 00:20:48 TopoAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1868 0.0 1.1 ? S Aug 13 00:05:49 PowerFuse\n 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1871 0.0 1.1 ? S Aug 13 00:05:49 PowerManager\n 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1877 0.0 1.4 ? S Aug 13 00:26:45 Ebra\n 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1893 0.0 1.1 ? S Aug 13 00:05:50 ReloadCauseAgent\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.1 ? S Aug 13 00:05:49 SharedSecretProfile\n 1905 0.0 1.5 ? S Aug 13 00:21:05 IgmpSnooping\n 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1944 0.0 1.3 ? S Aug 13 00:06:51 StaticRoute\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1956 0.0 1.9 ? S Aug 13 00:07:00 BgpCliHelper\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1959 0.0 1.3 ? S Aug 13 00:21:02 ConnectedRoute\n 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1968 0.0 1.3 ? S Aug 13 00:06:52 RouteInput\n 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2319 0.0 0.0 ? Ssl Aug 13 00:00:30 /usr/sbin/rsyslogd -n\n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2597 0.0 1.1 ? S Aug 13 00:05:51 LicenseManager\n 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2638 0.0 0.0 ? S Aug 13 00:01:06 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console\n 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2697 0.0 1.2 ? S Aug 13 00:43:17 Ipsec\n 2699 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2726 0.0 0.1 ? Ssl Aug 13 00:02:40 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3242 0.0 1.2 ? S Aug 13 00:44:52 Nat\n 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3263 0.0 1.4 ? S Aug 13 00:21:58 Vxlan\n 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3278 0.0 1.4 ? S Aug 13 00:23:07 VxlanSwFwd\n 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3317 0.0 0.1 ? Ssl Aug 13 00:03:27 /usr/libexec/strongswan/charon --use-syslog\n 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0]\n 3977 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 5320 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n20922 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:1]\n20926 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:4]\n21923 0.0 0.0 ? S 19:51:00 00:00:00 [kworker/0:0]\n22303 0.0 0.0 ? S 19:57:01 00:00:00 [kworker/0:2]\n22627 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:3]\n22821 0.0 0.1 ? Ss 20:04:12 00:00:00 sshd: root [priv] \n22822 0.0 0.0 ? S 20:04:12 00:00:00 sshd: root [net] \n22839 0.0 0.0 ? S 20:04:25 00:00:00 sshd: root [pam] \n23266 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26291 0.0 1.3 ? Sl Aug 26 00:05:37 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n26337 0.0 0.1 ? S Aug 26 00:02:16 nginx: worker process \n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 102790, 'authorizationAllowed': 2540, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 2, 'authenticationUnavailable': 135, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 102793\n Failed: 2\n Service unavailable: 135\n\nAuthorization\n Allowed: 2540\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'104361': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600200342, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n104361 kgrozis command-api E 0:00:11 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 27, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 27 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.164, 'jitter': 0.878, 'lastReceived': 1600199808.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -2.739, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 548 1024 377 0.164 -2.739 0.878\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281533.6844301, 'pid': 1675, 'enabled': True, 'uptime': 2918823.5399999996, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1675)\nUptime: 33 days, 18:47:03 (Start time: Thu Aug 13 01:18:53 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291600896 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291600896 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 94063, 'bytesOut': 267602929, 'lastHitTime': 1600200358.4862294, 'bytesIn': 15171714}}, 'bytesOut': 267602929, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 99711, 'vrf': 'default', 'lastHitTime': 1600200358.4861841, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 10713.303316325153, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 94063, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.15.101:443', 'Ethernet2 : https://11.201.15.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.3:443', 'Loopback10 : https://198.18.0.37:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 15171714, 'commandCount': 188126, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 99715\nLast hit: 0 seconds ago\nBytes in: 15172376\nBytes out: 267606486\nRequests: 94067\nCommands: 188134\nDuration: 10713.362 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 94067 15172376 267606486 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.15.101:443 \nEthernet2 : https://11.201.15.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.3:443 \nLoopback10 : https://198.18.0.37:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 16:28:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user default failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:27:32 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:29:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user admin failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:33:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user scan failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:36:37 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:40 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-3-NOTIFICATION: received from neighbor 11.201.0.4 (VRF default AS 64513) 6/6 (Cease/other configuration change) 0 bytes\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state Established event Stop new state Idle\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Up to Down diag NeighDown\nSep 15 18:56:27 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Init to Up diag None\nSep 15 18:56:27 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state OpenConfirm event Established new state Established\nSep 15 19:40:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user eclipse failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 20:05:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 16:28:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user default failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:27:32 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:29:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user admin failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:33:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user scan failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:36:37 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:40 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-3-NOTIFICATION: received from neighbor 11.201.0.4 (VRF default AS 64513) 6/6 (Cease/other configuration change) 0 bytes\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state Established event Stop new state Idle\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Up to Down diag NeighDown\nSep 15 18:56:27 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Init to Up diag None\nSep 15 18:56:27 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state OpenConfirm event Established new state Established\nSep 15 19:40:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user eclipse failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 20:05:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:255 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)) INFO root:tests_tools.py:259 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge2: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:262 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge2: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:316 Open log file for logging test show commands INFO root:tests_tools.py:320 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEOSEdge2| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:250 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-CloudEOSEdge2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge2', 'hostname': 'kg-topology-CloudEOSEdge2'}, 'text': 'Hostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 2918883.5, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DE52F26D16E91F22BB1B507175C8C765', 'systemMacAddress': '06:35:02:ca:82:97', 'bootupTimestamp': 1597281468.0, 'memFree': 2822824, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 4 weeks, 5 days, 18 hours and 48 minutes\nTotal memory: 7761392 kB\nFree memory: 2821944 kB\n\n'}, 'show processes': {'json': {'processes': {'2025': {'totalActiveTime': 2961128, 'memPct': 3.7, 'cpuPct': 101.0, 'startTime': 1597281547.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1675': {'totalActiveTime': 75230, 'memPct': 2.1, 'cpuPct': 2.5, 'startTime': 1597281532.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '5334': {'totalActiveTime': 112, 'memPct': 0.6, 'cpuPct': 1.0, 'startTime': 1600190106.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1476': {'totalActiveTime': 9059, 'memPct': 2.6, 'cpuPct': 0.3, 'startTime': 1597281508.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1518': {'totalActiveTime': 10723, 'memPct': 7.5, 'cpuPct': 0.3, 'startTime': 1597281511.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1243': {'totalActiveTime': 7224, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1951': {'totalActiveTime': 6129, 'memPct': 1.7, 'cpuPct': 0.2, 'startTime': 1597281544.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 3745, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281534.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 3108, 'memPct': 1.2, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 5760, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1980': {'totalActiveTime': 3722, 'memPct': 2.3, 'cpuPct': 0.1, 'startTime': 1597281546.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '3369': {'totalActiveTime': 5649, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281726.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 432, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 18, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 29, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '378': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '410': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '746': {'totalActiveTime': 206, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 60, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '770': {'totalActiveTime': 314, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '784': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '790': {'totalActiveTime': 5, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '880': {'totalActiveTime': 19, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '889': {'totalActiveTime': 25, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '998': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1000': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1015': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1019': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1021': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1031': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1062': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281482.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1189': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1190': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1224': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1226': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1228': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1242': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1415': {'totalActiveTime': 684, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281507.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1423': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1438': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1475': {'totalActiveTime': 158, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1517': {'totalActiveTime': 347, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1521': {'totalActiveTime': 1232, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1524': {'totalActiveTime': 592, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281512.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1651': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1653': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1654': {'totalActiveTime': 1677, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1659': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1661': {'totalActiveTime': 1244, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1665': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1666': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1668': {'totalActiveTime': 1357, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1669': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1698': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1699': {'totalActiveTime': 1325, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1701': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1702': {'totalActiveTime': 2460, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1709': {'totalActiveTime': 1258, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1710': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1486, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1716': {'totalActiveTime': 1642, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1723': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1724': {'totalActiveTime': 350, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1725': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1730': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1731': {'totalActiveTime': 567, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 916, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1736': {'totalActiveTime': 1252, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1738': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1741': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1743': {'totalActiveTime': 2739, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1756': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1759': {'totalActiveTime': 2017, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 410, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1789': {'totalActiveTime': 1248, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 1260, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1823': {'totalActiveTime': 1863, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1843': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1846': {'totalActiveTime': 1255, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1851': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1855': {'totalActiveTime': 1414, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 410, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1857': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1861': {'totalActiveTime': 412, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1862': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 1248, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1867': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1868': {'totalActiveTime': 349, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1870': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1871': {'totalActiveTime': 349, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1877': {'totalActiveTime': 1605, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1891': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1893': {'totalActiveTime': 350, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 349, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 1265, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1944': {'totalActiveTime': 411, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1950': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1954': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1956': {'totalActiveTime': 420, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1958': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1959': {'totalActiveTime': 1262, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1962': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1963': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1968': {'totalActiveTime': 412, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2011': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2014': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2319': {'totalActiveTime': 30, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2592': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2596': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2597': {'totalActiveTime': 351, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2614': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2633': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 66, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2639': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2666': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281561.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2695': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2696': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2697': {'totalActiveTime': 2597, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2699': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2726': {'totalActiveTime': 160, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281564.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2730': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281567.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3232': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3237': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3242': {'totalActiveTime': 2692, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3254': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3257': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3263': {'totalActiveTime': 1318, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3275': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3277': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3278': {'totalActiveTime': 1387, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3315': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3317': {'totalActiveTime': 207, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3856': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281920.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '3977': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281922.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '5320': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600190105.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '20922': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198560.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '20926': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600198560.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '21923': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199460.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '22303': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600199821.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '22627': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200061.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '22821': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1600200252.0, 'cmd': 'sshd: root [priv] ', 'state': 'Ss', 'ttyName': '?'}, '22822': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200252.0, 'cmd': 'sshd: root [net] ', 'state': 'S', 'ttyName': '?'}, '22839': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200265.0, 'cmd': 'sshd: root [pam] ', 'state': 'S', 'ttyName': '?'}, '23250': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200350.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '23251': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600200350.0, 'cmd': '[uptime] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '26289': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '26290': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '26291': {'totalActiveTime': 337, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '26335': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '26337': {'totalActiveTime': 136, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 2918883.99, 'loadAvg': [1.92, 1.3, 1.23], 'users': 0, 'currentTime': 1600200351.708995}}, 'text': " 20:05:52 up 33 days, 18:48, 0 users, load average: 1.92, 1.30, 1.23\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2025 101 3.7 ? Sl Aug 13 34-06:32:08 Sfe\n 1675 2.5 2.1 ? Sl Aug 13 20:53:50 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042\n 5334 1.0 0.6 ? SNl 17:15:06 00:01:52 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1476 0.3 2.6 ? S Aug 13 02:31:00 Sysdb\n 1518 0.3 7.6 ? Sl Aug 13 02:58:44 ConfigAgent\n 1243 0.2 0.9 ? S Aug 13 02:00:24 ProcMgr-worker\n 1951 0.2 1.7 ? S Aug 13 01:42:09 IpRib\n 1703 0.1 1.7 ? S Aug 13 01:02:25 SuperServer\n 1719 0.1 1.2 ? S Aug 13 00:51:48 StpTxRx\n 1727 0.1 1.0 ? S Aug 13 01:36:00 AgentMonitor\n 1980 0.1 2.3 ? Sl Aug 13 01:02:02 Bgp\n 3369 0.1 1.4 ? S Aug 13 01:34:09 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:07:12 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:18 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:29 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:20 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 746 0.0 0.0 ? Ss Aug 13 00:03:26 /usr/lib/systemd/systemd-logind\n 752 0.0 0.0 ? Ss Aug 13 00:01:00 /usr/bin/ProcMonitor\n 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 770 0.0 0.1 ? Ss Aug 13 00:05:14 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 790 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 880 0.0 0.0 ? Ss Aug 13 00:00:19 /usr/sbin/crond -n\n 889 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60\n 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1415 0.0 0.0 ? S Aug 13 00:11:24 /usr/bin/EosOomAdjust\n 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu]\n 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1475 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor\n 1517 0.0 1.2 ? S Aug 13 00:05:47 StageMgr\n 1521 0.0 1.4 ? S Aug 13 00:20:32 Fru\n 1524 0.0 1.8 ? S Aug 13 00:09:52 Launcher\n 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1654 0.0 1.3 ? S Aug 13 00:27:57 Lldp\n 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1661 0.0 1.2 ? S Aug 13 00:20:44 McastCommon\n 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1668 0.0 1.1 ? S Aug 13 00:22:37 PortSec\n 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1699 0.0 1.4 ? S Aug 13 00:22:05 Bfd\n 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1702 0.0 1.3 ? S Aug 13 00:41:00 Lag\n 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1709 0.0 1.5 ? S Aug 13 00:20:58 Ira\n 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:24:46 LedPolicy\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1716 0.0 1.3 ? S Aug 13 00:27:22 EventMgr\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1724 0.0 1.1 ? S Aug 13 00:05:50 StandbyCpld\n 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1731 0.0 1.2 ? S Aug 13 00:09:27 Tunnel\n 1732 0.0 1.6 ? Sl Aug 13 00:15:16 Aaa\n 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1736 0.0 1.2 ? S Aug 13 00:20:52 StpTopology\n 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1743 0.0 1.4 ? S Aug 13 00:45:39 Acl\n 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1759 0.0 1.1 ? S Aug 13 00:33:37 Stp\n 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.1 ? S Aug 13 00:06:50 KernelNetworkInfo\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1789 0.0 1.2 ? S Aug 13 00:20:48 McastCommon6\n 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.2 ? S Aug 13 00:21:00 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1823 0.0 1.5 ? S Aug 13 00:31:03 Arp\n 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1846 0.0 1.4 ? S Aug 13 00:20:55 KernelFib\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1855 0.0 1.2 ? S Aug 13 00:23:34 Qos\n 1856 0.0 1.1 ? S Aug 13 00:06:50 Thermostat\n 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1861 0.0 1.2 ? S Aug 13 00:06:52 L2Rib\n 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.2 ? S Aug 13 00:20:48 TopoAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1868 0.0 1.1 ? S Aug 13 00:05:49 PowerFuse\n 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1871 0.0 1.1 ? S Aug 13 00:05:49 PowerManager\n 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1877 0.0 1.4 ? S Aug 13 00:26:45 Ebra\n 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1893 0.0 1.1 ? S Aug 13 00:05:50 ReloadCauseAgent\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.1 ? S Aug 13 00:05:49 SharedSecretProfile\n 1905 0.0 1.5 ? S Aug 13 00:21:05 IgmpSnooping\n 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1944 0.0 1.3 ? S Aug 13 00:06:51 StaticRoute\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1956 0.0 1.9 ? S Aug 13 00:07:00 BgpCliHelper\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1959 0.0 1.3 ? S Aug 13 00:21:02 ConnectedRoute\n 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1968 0.0 1.3 ? S Aug 13 00:06:52 RouteInput\n 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2319 0.0 0.0 ? Ssl Aug 13 00:00:30 /usr/sbin/rsyslogd -n\n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2597 0.0 1.1 ? S Aug 13 00:05:51 LicenseManager\n 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2638 0.0 0.0 ? S Aug 13 00:01:06 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console\n 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2697 0.0 1.2 ? S Aug 13 00:43:17 Ipsec\n 2699 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2726 0.0 0.1 ? Ssl Aug 13 00:02:40 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3242 0.0 1.2 ? S Aug 13 00:44:52 Nat\n 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3263 0.0 1.4 ? S Aug 13 00:21:58 Vxlan\n 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3278 0.0 1.4 ? S Aug 13 00:23:07 VxlanSwFwd\n 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3317 0.0 0.1 ? Ssl Aug 13 00:03:27 /usr/libexec/strongswan/charon --use-syslog\n 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0]\n 3977 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 5320 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n20922 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:1]\n20926 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:4]\n21923 0.0 0.0 ? S 19:51:00 00:00:00 [kworker/0:0]\n22303 0.0 0.0 ? S 19:57:01 00:00:00 [kworker/0:2]\n22627 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:3]\n22821 0.0 0.1 ? Ss 20:04:12 00:00:00 sshd: root [priv] \n22822 0.0 0.0 ? S 20:04:12 00:00:00 sshd: root [net] \n22839 0.0 0.0 ? S 20:04:25 00:00:00 sshd: root [pam] \n23266 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26291 0.0 1.3 ? Sl Aug 26 00:05:37 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n26337 0.0 0.1 ? S Aug 26 00:02:16 nginx: worker process \n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 102790, 'authorizationAllowed': 2540, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 2, 'authenticationUnavailable': 135, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 102793\n Failed: 2\n Service unavailable: 135\n\nAuthorization\n Allowed: 2540\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'104361': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600200342, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n104361 kgrozis command-api E 0:00:11 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 27, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 27 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.164, 'jitter': 0.878, 'lastReceived': 1600199808.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -2.739, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 548 1024 377 0.164 -2.739 0.878\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281533.6844301, 'pid': 1675, 'enabled': True, 'uptime': 2918823.5399999996, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1675)\nUptime: 33 days, 18:47:03 (Start time: Thu Aug 13 01:18:53 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291600896 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291600896 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 94063, 'bytesOut': 267602929, 'lastHitTime': 1600200358.4862294, 'bytesIn': 15171714}}, 'bytesOut': 267602929, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 99711, 'vrf': 'default', 'lastHitTime': 1600200358.4861841, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 10713.303316325153, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 94063, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.15.101:443', 'Ethernet2 : https://11.201.15.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.3:443', 'Loopback10 : https://198.18.0.37:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 15171714, 'commandCount': 188126, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 99715\nLast hit: 0 seconds ago\nBytes in: 15172376\nBytes out: 267606486\nRequests: 94067\nCommands: 188134\nDuration: 10713.362 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 94067 15172376 267606486 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.15.101:443 \nEthernet2 : https://11.201.15.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.3:443 \nLoopback10 : https://198.18.0.37:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 16:28:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user default failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:27:32 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:29:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user admin failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:33:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user scan failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:36:37 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:40 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-3-NOTIFICATION: received from neighbor 11.201.0.4 (VRF default AS 64513) 6/6 (Cease/other configuration change) 0 bytes\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state Established event Stop new state Idle\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Up to Down diag NeighDown\nSep 15 18:56:27 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Init to Up diag None\nSep 15 18:56:27 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state OpenConfirm event Established new state Established\nSep 15 19:40:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user eclipse failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 20:05:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 15 16:28:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 16:28:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:18:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:19:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:21 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:24:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:25:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:07 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:30 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user default failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:27:32 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:29:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user admin failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:33:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user scan failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 18:36:37 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:37:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:40:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 15 18:41:40 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-3-NOTIFICATION: received from neighbor 11.201.0.4 (VRF default AS 64513) 6/6 (Cease/other configuration change) 0 bytes\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state Established event Stop new state Idle\nSep 15 18:56:26 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Up to Down diag NeighDown\nSep 15 18:56:27 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Init to Up diag None\nSep 15 18:56:27 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state OpenConfirm event Established new state Established\nSep 15 19:40:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user eclipse failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user]\nSep 15 20:05:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:255 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)) INFO root:tests_tools.py:259 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge2: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:262 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge2: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:316 Open log file for logging test show commands INFO root:tests_tools.py:320 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest does not have input errors | 0.23 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| inErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:263 TEST if interface |Ethernet1| counters has input errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:265 GIVEN interface input errors of |0| INFO root:test_interface.py:267 WHEN interface input errors is |{actual_output}| INFO root:test_interface.py:274 THEN test case result is |{test_result}| INFO root:test_interface.py:275 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2'} INFO root:test_interface.py:263 TEST if interface |Ethernet2| counters has input errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:265 GIVEN interface input errors of |0| INFO root:test_interface.py:267 WHEN interface input errors is |{actual_output}| INFO root:test_interface.py:274 THEN test case result is |{test_result}| INFO root:test_interface.py:275 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2'} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest does not have output errors | 0.24 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| outErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:314 TEST if interface |Ethernet1| counters has output errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:316 GIVEN interface output errors of |0| INFO root:test_interface.py:318 WHEN interface output errors is |{actual_output}| INFO root:test_interface.py:325 THEN test case result is |{test_result}| INFO root:test_interface.py:326 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 6 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2'} INFO root:test_interface.py:314 TEST if interface |Ethernet2| counters has output errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:316 GIVEN interface output errors of |0| INFO root:test_interface.py:318 WHEN interface output errors is |{actual_output}| INFO root:test_interface.py:325 THEN test case result is |{test_result}| INFO root:test_interface.py:326 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 6 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2'} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest physical state is link up | 0.33 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEOSEdge2 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:361 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:404 Verify if kg-topology-CloudEOSEdge2 DUT is a VEOS instance INFO root:tests_tools.py:408 kg-topology-CloudEOSEdge2 is a VEOS instance so returning True INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:489 Test case test_if_intf_phy_status_connected_on_ exists in results file at index 3 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'actual_output': None, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2'} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no frameLongShorts errors | 0.70 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| frameTooLongs, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:416 TEST if interface |Ethernet1| counters has frameTooLongs errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:418 GIVEN interface frameTooLongs errors of |0| INFO root:test_interface.py:420 WHEN interface frameTooLongs errors is |{actual_output}| INFO root:test_interface.py:427 THEN test case result is |{test_result}| INFO root:test_interface.py:428 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 4 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2'} INFO root:test_interface.py:416 TEST if interface |Ethernet2| counters has frameTooLongs errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:418 GIVEN interface frameTooLongs errors of |0| INFO root:test_interface.py:420 WHEN interface frameTooLongs errors is |{actual_output}| INFO root:test_interface.py:427 THEN test case result is |{test_result}| INFO root:test_interface.py:428 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 4 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2'} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEOSEdge2] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show ntp status| on kg-topology-CloudEOSEdge2 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEOSEdge2| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 27 ms polling server every 1024 s | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no frameTooShorts errors | 0.47 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| frameTooShorts, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:361 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:365 TEST if interface |Ethernet1| counters has frameTooShorts errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:367 GIVEN interface frameTooShorts errors of |0| INFO root:test_interface.py:369 WHEN interface frameTooShorts errors is |{actual_output}| INFO root:test_interface.py:376 THEN test case result is |{test_result}| INFO root:test_interface.py:377 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2'} INFO root:test_interface.py:365 TEST if interface |Ethernet2| counters has frameTooShorts errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:367 GIVEN interface frameTooShorts errors of |0| INFO root:test_interface.py:369 WHEN interface frameTooShorts errors is |{actual_output}| INFO root:test_interface.py:376 THEN test case result is |{test_result}| INFO root:test_interface.py:377 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:474 Find Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:478 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:485 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:489 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2'} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEOSEdge2] | Verify memory is not exceeding high utlization | 0.31 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |dut_name| memory utilization percent is |36.370073821809285%| and should be under 70% -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show version| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show version| on kg-topology-CloudEOSEdge2 INFO root:test_memory.py:71 TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge2| INFO root:test_memory.py:73 GIVEN memory utilization is less than |70%| INFO root:test_memory.py:80 WHEN memory utilization is |36.370073821809285| INFO root:test_memory.py:83 THEN test case result is |True%| INFO root:test_memory.py:84 OUTPUT of |show version| is : Arista vEOS Hardware version: Serial number: DE52F26D16E91F22BB1B507175C8C765 System MAC address: 0635.02ca.8297 Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 4 weeks, 5 days, 18 hours and 48 minutes Total memory: 7761392 kB Free memory: 2822824 kB INFO root:tests_tools.py:474 Find Index for test suite: test_memory.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:478 Test suite test_memory.py exists in results file at index 1 INFO root:tests_tools.py:485 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:489 Test case test_memory_utilization_on_ exists in results file at index 0 INFO root:tests_tools.py:496 Add DUT kg-topology-CloudEOSEdge2 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True, 'actual_output': 36.370073821809285, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2'} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEOSEdge2] | Verify local log messages | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| message |critical| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |warning| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |ECC| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |servers errors| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show logging| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show logging| on kg-topology-CloudEOSEdge2 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 16:28:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:25:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:25:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:30 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user default failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 18:27:32 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:29:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user admin failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 18:33:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user scan failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 18:36:37 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:40 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-3-NOTIFICATION: received from neighbor 11.201.0.4 (VRF default AS 64513) 6/6 (Cease/other configuration change) 0 bytes Sep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state Established event Stop new state Idle Sep 15 18:56:26 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Up to Down diag NeighDown Sep 15 18:56:27 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Init to Up diag None Sep 15 18:56:27 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state OpenConfirm event Established new state Established Sep 15 19:40:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user eclipse failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 20:05:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 16:28:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:25:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:25:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:30 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user default failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 18:27:32 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:29:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user admin failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 18:33:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user scan failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 18:36:37 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:40 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-3-NOTIFICATION: received from neighbor 11.201.0.4 (VRF default AS 64513) 6/6 (Cease/other configuration change) 0 bytes Sep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state Established event Stop new state Idle Sep 15 18:56:26 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Up to Down diag NeighDown Sep 15 18:56:27 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Init to Up diag None Sep 15 18:56:27 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state OpenConfirm event Established new state Established Sep 15 19:40:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user eclipse failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 20:05:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 16:28:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:25:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:25:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:30 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user default failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 18:27:32 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:29:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user admin failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 18:33:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user scan failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 18:36:37 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:40 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-3-NOTIFICATION: received from neighbor 11.201.0.4 (VRF default AS 64513) 6/6 (Cease/other configuration change) 0 bytes Sep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state Established event Stop new state Idle Sep 15 18:56:26 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Up to Down diag NeighDown Sep 15 18:56:27 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Init to Up diag None Sep 15 18:56:27 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state OpenConfirm event Established new state Established Sep 15 19:40:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user eclipse failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 20:05:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 16:28:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:25:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:25:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:30 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user default failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 18:27:32 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:29:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user admin failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 18:33:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user scan failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 18:36:37 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:40 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-3-NOTIFICATION: received from neighbor 11.201.0.4 (VRF default AS 64513) 6/6 (Cease/other configuration change) 0 bytes Sep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state Established event Stop new state Idle Sep 15 18:56:26 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Up to Down diag NeighDown Sep 15 18:56:27 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Init to Up diag None Sep 15 18:56:27 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state OpenConfirm event Established new state Established Sep 15 19:40:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user eclipse failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 20:05:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 15 16:28:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 16:28:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:18:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:18:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:19:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:19:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:24:21 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:24:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:25:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:25:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:07 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:30 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user default failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 18:27:32 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:27:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:29:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user admin failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 18:33:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user scan failed to login [from: 91.241.19.42] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 18:36:37 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:37:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:37:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:40:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:41:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 15 18:41:40 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-3-NOTIFICATION: received from neighbor 11.201.0.4 (VRF default AS 64513) 6/6 (Cease/other configuration change) 0 bytes Sep 15 18:56:26 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state Established event Stop new state Idle Sep 15 18:56:26 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Up to Down diag NeighDown Sep 15 18:56:27 kg-topology-CloudEOSEdge2 Bfd: %BFD-5-STATE_CHANGE: peer (vrf:default, ip:11.201.0.4, intf:, srcIp:11.201.0.3, type:multihop) changed state from Init to Up diag None Sep 15 18:56:27 kg-topology-CloudEOSEdge2 Bgp: %BGP-5-ADJCHANGE: peer 11.201.0.4 (VRF default AS 64513) old state OpenConfirm event Established new state Established Sep 15 19:40:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-4-LOGIN_FAILED: user eclipse failed to login [from: 176.113.115.226] [service: sshd] [reason: Authentication failed - Bad user] Sep 15 20:05:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEOSEdge2] | Verify tacacs messages are sending correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:382 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:388 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEOSEdge2| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEOSEdge2] | Verify ntp peers are correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show ntp associations| on kg-topology-CloudEOSEdge2 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEOSEdge2| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 548 1024 377 0.164 -2.739 0.878 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEOSEdge2] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEOSEdge2| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 20:05:51 up 33 days, 18:48, 0 users, load average: 1.92, 1.30, 1.23 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 34-06:32:08 Sfe 1675 2.5 2.1 ? Sl Aug 13 20:53:50 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 5334 1.0 0.6 ? SNl 17:15:06 00:01:52 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1476 0.3 2.6 ? S Aug 13 02:30:59 Sysdb 1518 0.3 7.6 ? Sl Aug 13 02:58:44 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:00:24 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 01:42:09 IpRib 1703 0.1 1.7 ? S Aug 13 01:02:25 SuperServer 1719 0.1 1.2 ? S Aug 13 00:51:48 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:36:00 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:02:02 Bgp 3369 0.1 1.4 ? S Aug 13 01:34:09 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:07:12 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:18 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:29 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:20 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:03:26 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:00 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:05:14 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:19 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:11:24 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:05:47 StageMgr 1521 0.0 1.4 ? S Aug 13 00:20:32 Fru 1524 0.0 1.8 ? S Aug 13 00:09:52 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:27:57 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:20:44 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:22:37 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:22:05 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:41:00 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:20:58 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:24:46 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:27:22 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:05:50 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:09:27 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:15:16 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:20:52 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:45:39 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:33:37 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:06:50 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:20:48 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:21:00 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:31:03 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:20:55 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:23:34 Qos 1856 0.0 1.1 ? S Aug 13 00:06:50 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:06:52 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:20:48 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:05:49 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:05:49 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:26:45 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:05:50 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:05:49 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:21:05 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:06:51 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:07:00 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:21:02 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:06:52 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:30 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:05:51 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:06 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:43:17 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:02:40 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:44:52 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:21:58 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:23:07 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:03:27 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 5320 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 20922 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:1] 20926 0.0 0.0 ? S 19:36:00 00:00:00 [kworker/0:4] 21923 0.0 0.0 ? S 19:51:00 00:00:00 [kworker/0:0] 22303 0.0 0.0 ? S 19:57:01 00:00:00 [kworker/0:2] 22627 0.0 0.0 ? S 20:01:01 00:00:00 [kworker/0:3] 22821 0.0 0.1 ? Ss 20:04:12 00:00:00 sshd: root [priv] 22822 0.0 0.0 ? S 20:04:12 00:00:00 sshd: root [net] 22839 0.0 0.0 ? S 20:04:25 00:00:00 sshd: root [pam] 23256 0.0 0.0 ? Rs 20:05:51 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:05:37 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:02:16 nginx: worker process | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEOSEdge2] | Verify tacacs messages are received correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:382 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:388 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEOSEdge2| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEOSEdge2] | Verify username is set correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| |ec2-user| username is |configured| On router |kg-topology-CloudEOSEdge2| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show running-config section username| on kg-topology-CloudEOSEdge2 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEOSEdge2| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEOSEdge2| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEOSEdge2] | Verify ztp is disabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |show zerotouch| on kg-topology-CloudEOSEdge2 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEOSEdge2| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEOSEdge2] | Verify zerotoucn-config file is on flash | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:96 Opening definitions.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': True, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:575 dir_path is f./tests INFO root:tests_tools.py:576 dir_names is f['interface', 'host', 'extension', 'memory', 'cpu', 'ztp', 'filesystem', '__pycache__', 'aaa', 'ntp', 'daemon', 'users', 'environment', 'api', 'dns', 'tacacs', 'logging'] INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_pytest.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/interface/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_interface.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/interface/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_interfaces_baseline_health.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_interface.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/host/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_host.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/host/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_host.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/extension/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_extension.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/extension/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_extension.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/memory/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_memory.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/memory/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_memory.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/cpu/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_cpu.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/cpu/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_cpu.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ztp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ztp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ztp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_ztp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/filesystem/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_filesystem.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/filesystem/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_filesystem.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_pytest.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/aaa/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_aaa.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/aaa/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_aaa.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/ntp/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_ntp.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/ntp/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_ntp.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/daemon/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_daemon.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/daemon/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_daemon.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/users/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_users.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/users/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_users.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/environment/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_environment.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/environment/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_environment.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/api/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_api.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/api/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_api.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/dns/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:585 File test_dns.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/dns/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_dns.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/tacacs/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_tacacs.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/tacacs/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_tacacs.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging INFO root:tests_tools.py:576 dir_names is f['__pycache__'] INFO root:tests_tools.py:580 YAML file is ./tests/logging/test_definition.yaml INFO root:tests_tools.py:96 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:101 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:582 Test Definition is {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:585 File .pylintrc in not yaml INFO root:tests_tools.py:585 File test_logging.py in not yaml INFO root:tests_tools.py:585 File __init__.py in not yaml INFO root:tests_tools.py:575 dir_path is f./tests/logging/__pycache__ INFO root:tests_tools.py:576 dir_names is f[] INFO root:tests_tools.py:585 File __init__.cpython-38.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_logging.cpython-38-pytest-6.0.2.pyc in not yaml INFO root:tests_tools.py:585 File test_dut_platform_status.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:585 File test_base_feature_checklist.cpython-38-pytest-6.0.1.pyc in not yaml INFO root:tests_tools.py:600 Opening tests_definitions.yaml for write INFO root:tests_tools.py:604 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:588 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:337 Identify test case and return parameters INFO root:tests_tools.py:340 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:343 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:345 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:348 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:361 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:365 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEOSEdge2 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEOSEdge2| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7291600896 bytes free) | ||||